JButton btn = new JButton();
JButton[][] boutons = {{btn, btn, btn, btn, btn, btn, btn, btn, btn}, {btn, btn, btn, btn, btn, btn, btn, btn, btn}, {btn, btn, btn, btn, btn, btn, btn, btn, btn}, {btn, btn, btn, btn, btn, btn, btn, btn, btn}, {btn, btn, btn, btn, btn, btn, btn, btn, btn}, {btn, btn, btn, btn, btn, btn, btn, btn, btn}, {btn, btn, btn, btn, btn, btn, btn, btn, btn}, {btn, btn, btn, btn, btn, btn, btn, btn, btn}, {btn, btn, btn, btn, btn, btn, btn, btn, btn}};
public Fenetre() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new GridLayout(9, 9));
setContentPane(contentPane);
for (int ligne=0;ligne<boutons.length;ligne++) {
for(int colone=0;colone<boutons[ligne].length;colone++) {
JButton bouton = boutons[ligne][colone];
bouton.setName(String.valueOf(ligne) + " : " + String.valueOf(colone));
System.out.println(String.valueOf(ligne) + " " + String.valueOf(colone));
bouton.addActionListener(this);
contentPane.add(bouton);
}
}
}
我想显示 9x9 Jbuttons(它们在 JButton 数组中(并为每个 JButton 设置一个名称,以便稍后检索它们的信息。但。。。我的 JPanel 中只有一个 JButton.....
问题原因:
数组的所有元素都指向同一个按钮btn
因此,当您添加它们时,您只添加相同的按钮,该按钮已经存在于面板中。因此,您只看到 1 个按钮。
如何解决:
- 在数组声明中,将所有
btn
替换为new JButton()
。您可以使用 IDE 的替换功能轻松完成此操作。
或
-
只需声明数组,如下所示:
JButton[][] boutons = new JButton[9][9];
并在您的 for 循环中添加此行:
bouton = new JButton();