当我搜索互联网时,我找到了一种方法来强调这样的字体,
Font f=jLabel1.getFont();
Map<TextAttribute,Object> map = new Hashtable<TextAttribute,Object>();
map.put(TextAttribute.UNDERLINE,TextAttribute.UNDERLINE_ON);
f=f.deriveFont(map);
jLabel1.setFont(f);
它在jdk6上运行良好,但它不能在jdk5上运行,并且它不会发出任何警告。 首先,我怎样才能在jdk5上获得相同的效果? 第二,为什么有一个TextAttribute.UNDERLINE常量,如果它不起作用?
答案 0 :(得分:2)
label.setText("<html>some <u>underlined</u> text</html>");
请注意,如果您提供自定义外观,则HTML呈现可能无法按预期工作。
另一种方法是在标签上添加MatteBorder,但是“强调”整个标签:
label.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.BLACK));
答案 1 :(得分:0)
我认为这段代码可以在JDK.5中运行
text.setText(“0123456789 ABCDEFGHIJKLM NOPQRSTUVWXYZ”);
// make 0123456789带下划线
obj.underline=true
可能会正常工作。
StyleRange style1 = new StyleRange();
style1.start = 0;
style1.length = 10;
style1.underline = true;
text.setStyleRange(style1);
0123456789 is underlined.
答案 2 :(得分:0)
针对deriveFont
方法报告了许多错误;见this search。我找不到与你的问题完全匹配的那个,但你可以有更好的运气。如果您找到相关的错误报告,可能会有解决方法。