【发布时间】:2011-07-07 11:40:56
【问题描述】:
当我在 JTextArea 中选择一段文本时,它会变为白色并以蓝色突出显示(我使用的是 Nimbus LookAndFeel)。
我把它改成了白色,文本也保持黑色,所以没有注意到。我现在想要的是在用户突出显示文本时以粗体显示文本。
有什么简单的方法可以做到这一点吗?如果我为双击创建一个监听器,它会起作用吗?或者文本会变粗但根本不突出显示?
【问题讨论】:
当我在 JTextArea 中选择一段文本时,它会变为白色并以蓝色突出显示(我使用的是 Nimbus LookAndFeel)。
我把它改成了白色,文本也保持黑色,所以没有注意到。我现在想要的是在用户突出显示文本时以粗体显示文本。
有什么简单的方法可以做到这一点吗?如果我为双击创建一个监听器,它会起作用吗?或者文本会变粗但根本不突出显示?
【问题讨论】:
见DefaultHighlighter来源
内部类DefaultHighlightPainter 有方法
public void paint(Graphics g, int offs0, int offs1, Shape bounds, JTextComponent c)
您可以在那里指定字体。只需为 Graphics 实例调用 setFont()。
注意:粗体字体可能有不同的宽度,所以你应该使用像“等宽”这样的字体
【讨论】:
使用 JTextPane,然后您可以为突出显示的文本使用样式。请参阅 Text Component Features 上的 Swing 教程部分。
【讨论】: