我有一个扩展 JPanel 的类,上面有几个按钮。我希望能够通过一次调用 setFont(Font font); 来设置所有按钮上的字体我在 JPanel 类中定义了 setFont 方法,如下所示:
public class MyPanel extends JPanel {
private JButton[] buttons = new JButton[10];
public MyPanel() {
for(int i = 0; i < 10; i++) {
buttons[i] = new JButton(""+i);
this.add(buttons[i]);
}
}
public void setFont(Font font) {
if(buttons != null) {
for(JButton b : buttons) {
b.setFont(font);
}
}
}
}
但是,按钮上的字体永远不会改变。我知道 setFont 是由 JPanel 构造函数调用的,但我不明白为什么当我在创建 MyPanel 对象后明确调用它时,字体不会传递到按钮。
感谢大家!
Brent
如果你想all应用程序中的后续按钮要使用不同的字体,您可以在实例化面板之前设置默认值:
UIManager.put("Button.font", new FontUIResource("Dialog", Font.BOLD, 24));
附录:更集中的方法可能是添加扩展的实例JButton
在面板的构造函数中:
buttons[i] = new MyButton(String.valueOf(i));
this.add(buttons[i]);
新按钮将始终具有相同的字体:
private static class MyButton extends JButton {
private static final Font font = new Font("Dialog", Font.BOLD, 24);
public MyButton(String text) {
super(text);
this.setFont(font);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)