日期:2014-05-20  浏览次数:20698 次

一个小问题、新手求帮助
private void setNewFont() {
// Determine a font style
int fontStyle = Font.PLAIN;
fontStyle += (jchkBold.isSelected() ? Font.BOLD : Font.PLAIN);
fontStyle += (jchkItalic.isSelected() ? Font.ITALIC : Font.PLAIN);

Font font = messagePanel.getFont();
messagePanel.setFont(
new Font(font.getName(), fontStyle, font.getSize()));
}
这个程序中的
fontStyle += (jchkBold.isSelected() ? Font.BOLD : Font.PLAIN);
fontStyle += (jchkItalic.isSelected() ? Font.ITALIC : Font.PLAIN);
这两句为什么要用+=而不是=?

------解决方案--------------------
避免 Font.ITALIC 冲掉了 Font.BOLD。

因为这几个标志在Font里面,恰好是几个不同的位。

Font.PLAIN 其实是 0。BOLD 是 1。ITALIC 是 2。

所以3表示:即时粗体,又是斜体。