尝试查找MultiLineLabel代码中可能存在的错误,该代码可在此处找到:http://samuelsjoberg.com/archive/2009/10/multiline-labels-in-swing。基本上,如果使用Arial等字体,则该示例将正常运行。但是,如果我在Mac上安装了自定义字体,例如ITCKorinna-Bold,则它仍然会渲染MultiLineLabel,但不会添加任何换行符,因此“This is a long line.”变成了“This is ...”。
Font robotoFont = null;
try {
robotoFont = Font.createFont(Font.TRUETYPE_FONT, new File("/usr/share/fonts/roboto/Roboto-Black.ttf"));
robotoFont = robotoFont.deriveFont(14f);
} catch (Exception e) {
e.printStackTrace();
}
// Using the MultiLineLabel class.
final MultiLineLabel mLabel = new MultiLineLabel(
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. "
+ "Phasellus non sapien quam. Fusce posuere, nisl "
+ "vitae tristique volutpat, augue erat faucibus nisl, "
+ "nec venenatis metus sem vel enim. Cras in libero "
+ "sapien, vitae euismod neque. Proin hendrerit, odio "
+ "et faucibus suscipit, eros tellus blandit justo, "
+ "ac cursus risus elit ut risus.");
mLabel.setForeground(Color.WHITE);
mLabel.setFont(robotoFont);