编程语言
首页 > 编程语言> > java – 更改jTextPane中所选文本的颜色

java – 更改jTextPane中所选文本的颜色

作者:互联网

我正在使用JTextPane创建一个文本编辑器,允许用户更改所选文本的颜色.但是当用户选择文本时,则选择更改颜色(例如,红色)的选项,文本不会显示为红色,直到文本被取消选中.我尝试使用setSelectedTextColor来更改所选文本的颜色,但这不起作用,因为无论何时随后选择文本,都会将文本更改为红色.有没有办法让选定的文字显示为实际颜色?或者喜欢它在Word中的工作方式,它不是文本的实际颜色,但是当选择不同颜色的文本时,即使选择它们也会显示为不同的颜色.

我使用以下代码设置JTextPane和按钮,将所选文本更改为红色:

JButton redButton = new JButton(new StyledEditorKit.ForegroundAction("red", Color.RED));
redButton.setFocusable(false);
buttonPanel.add(redButton);

JTextPane设置为内容类型HTML并使用HTMLEditorKit:

p=new JTextPane();
p.setSize(300, 300);
kit = new HTMLEditorKit();
p.setEditorKit(kit);
p.setDocument(kit.createDefaultDocument());

p.setContentType("text/html");
p.setEditable(true);

如果您需要更多源代码来理解这个问题,请告诉我.谢谢!

解决方法:

听起来您可能正在使用除字体系列名称之外的其他内容.我重新考虑了这个example以使用JTextPane并看到了预期的结果.如上所述,动作需要字体系列名称,例如默认值或face = SansSerif,由嵌套在StyledEditorKit中的FontFamilyAction类指定.

JTextPane textPane = new JTextPane();

标签:jtextpane,java,colors,swing,swing-highlighter
来源: https://codeday.me/bug/20190825/1719262.html