【发布时间】:2022-07-07 13:53:40
【问题描述】:
所以我试图为一个学校项目做一个 java-swing-gui,因此我必须向一个 JPanel 元素添加 72 个按钮 (idk)。 我尝试使用 for 循环:
for (JButton btn : btns) {
panel.add(btn);
}
但它并没有真正解决并抛出一个 nullPointerExeption。 有什么建议吗?
这里是完整的代码:
import javax.swing.*;
import javax.swing.plaf.DimensionUIResource;
import java.awt.*;
public class mädn extends JFrame{
static JPanel panel = new JPanel();
static JFrame frame = new JFrame();
static JButton[] fields = new JButton[72];
public static void main(String[] args) {
new mädn();
}
public mädn() {
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(new DimensionUIResource(500, 500));
frame.setTitle("Mensch Ärger Dich Nicht");
panel.setLayout(new GridLayout(11, 11));
panel.setBackground(Color.blue);
for (JButton field : fields) {
field.setSize(20, 20);
panel.add(field);
}
frame.add(panel);
frame.setVisible(true);
}
}
【问题讨论】:
-
你还没有初始化数组的内容
-
在创建对象数组时,数组的内容初始设置为
null(每个元素),需要在数组中填充值才能使用。您可以使用循环来创建每个元素并填充面板。此外,setSize在这种情况下不会做任何事情
标签: java swing for-loop nullpointerexception jbutton