我正在尝试使用JTextPane创建一个文本编辑器,但是我在设置所选文本颜色方面遇到了麻烦。这是最好的(但显然,不起作用):
JMenuItem button = new JMenuItem("Set Color");
toolbar.add(button);
button.addActionListener(new ActionListener( ) {
public void actionPerformed(ActionEvent e) {
Color c = JColorChooser.showDialog(frame,"Choose a color", getBackground());
textPane.getSelectedText().StyledEditorKit.ForegroundAction("color",c);
}
});
有关如何使其发挥作用的任何建议?或者更好的方法呢?
由于
答案 0 :(得分:2)
getSelectedText()
只返回包含所选文本的普通字符串;你不能用它来修改文本的属性。
我首先使用SimpleAttributeSet
和StyleConstants
生成颜色属性,然后将其应用到文本的选定部分:
SimpleAttributeSet attr = new SimpleAttributeSet();
StyleConstants.setForeground(attr, c);
textPane.setCharacterAttributes(attr, false);