【问题标题】:How to display 9x9 Jbuttons which are in an array of JButtons?如何显示 JButtons 数组中的 9x9 Jbuttons?
【发布时间】:2016-04-10 12:21:57
【问题描述】:
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(在 JButtons 数组中)并为每个 JButton 设置一个名称,以便稍后检索它们的信息。 但是...我的 JPanel 中只有一个 JButton .....

【问题讨论】:

标签: java arrays swing jbutton


【解决方案1】:

问题原因:

数组的所有元素都指向同一个按钮btn

因此,当您添加它们时,您只需添加面板中已经存在的相同按钮。因此,您只能看到 1 个按钮。


如何解决:

  • 在您的数组声明中,将所有btns 替换为new JButton()您可以使用 IDE 的替换功能轻松做到这一点

  • 只需像这样声明数组:

    JButton[][] boutons = new JButton[9][9];
    

    并在你的 for 循环中添加这一行:

    bouton = new JButton();
    

【讨论】:

    猜你喜欢
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    相关资源
    最近更新 更多