如何显示 JButton 数组中的 9x9 Jbuttons


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();
    

最新更新