我正在尝试在我的JTextPane中加粗一行,但我没有做任何工作。 我尝试使用新的粗体字体来编写该行,但它没有帮助。
Font font = new Font("Consolas", Font.BOLD, 11);
textPane.setFont(font);
textPane.setText(textPane.getText() + "\n" + getTimeStamp() + sender + ": " + message);
textPane.setFont(defaultFont);
我该怎么做?
答案 0 :(得分:7)
最简单的方法是从JTextPane获取StyledDocument,并使用setCharacterAttributes()方法。
StyledDocument对象上的setCharacterAttributes方法允许您设置特定字符范围,一组属性,可以包括BOLD。
一些示例代码可能是
// set chars 4 to 10 to Bold
SimpleAttributeSet sas = new SimpleAttributeSet();
StyleConstants.setBold(sas, true);
textPane.getStyledDocument().setCharacterAttributes(4, 6, sas, false);
答案 1 :(得分:2)
需要注意的是确保您使用的字体系列在系统上实际使用粗体字体。我开始使用Monaco(在OSX上),它只包含常规字体。直到我切换到Menlo Bold的Menlo之后,没有任何工作。
以下是一些基于Oracle示例的代码。
StyledDocument document = textPane.getStyledDocument ();
Style defaultStyle =
StyleContext.getDefaultStyleContext ().getStyle (StyleContext.DEFAULT_STYLE);
Style regular = document.addStyle ("regular", defaultStyle);
StyleConstants.setBackground (regular, backgroundColor);
StyleConstants.setFontFamily (regular, "Menlo");
StyleConstants.setFontSize (regular, 14);
blackStyle = document.addStyle ("BlackStyle", regular);
StyleConstants.setForeground (blackStyle, Color.black);
redStyle = document.addStyle ("RedStyle", regular);
StyleConstants.setForeground (redStyle, Color.red);
StyleConstants.setBold (redStyle, true);