我有一个扩展了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