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表示:即时粗体,又是斜体。