Java 如何显示JButton数组中的9x9 JButton? JButton btn=newjbutton(); 据英国《英国广播公司(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日)10日(北京)10月10日(北京)10月10日(北京)10日(北京)10月10日(北京)10月10日)10日)10月10日(北京)10月10月10日(北京)10日)10月10日(北京)10月10月10日)10日(北京)10月10日(北京)10日(北京)10月10月10月10日)10日(北京6月10日)10月10月10日(北京)10月10日(北京)10日)10日(北京)10月10月10月10日)10月10日(北京)10日)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}; 公共场所(){ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 立根(100100450300); contentPane=newjpanel(); setboorder(新的EmptyBorder(5,5,5,5)); setLayout(新的GridLayout(9,9)); setContentPane(contentPane); 对于(int ligne=0;ligne

Java 如何显示JButton数组中的9x9 JButton? JButton btn=newjbutton(); 据英国《英国广播公司(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日(北京)10月10日)10日(北京)10月10日(北京)10月10日(北京)10日(北京)10月10日(北京)10月10日)10日)10月10日(北京)10月10月10日(北京)10日)10月10日(北京)10月10月10日)10日(北京)10月10日(北京)10日(北京)10月10月10月10日)10日(北京6月10日)10月10月10日(北京)10月10日(北京)10日)10日(北京)10月10月10月10日)10月10日(北京)10日)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}; 公共场所(){ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 立根(100100450300); contentPane=newjpanel(); setboorder(新的EmptyBorder(5,5,5,5)); setLayout(新的GridLayout(9,9)); setContentPane(contentPane); 对于(int ligne=0;ligne,java,arrays,swing,jbutton,Java,Arrays,Swing,Jbutton,问题原因: 数组的所有元素都指向同一按钮btn 同样地,当您添加它们时,您只添加面板中已经存在的相同按钮。因此,您只看到1个按钮 如何解决: 在数组声明中,将所有btns替换为new JButton()。使用IDE的replace函数可以轻松完成此操作 或 只需声明数组,如下所示: JButton btn = new JButton(); JButton[][] boutons = {{btn, btn, btn, btn, btn, btn, btn, btn, btn}, {btn,

问题原因:

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

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


如何解决:

  • 在数组声明中,将所有
    btn
    s替换为
    new JButton()
    。使用IDE的replace函数可以轻松完成此操作

  • 只需声明数组,如下所示:

    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);
                }
            }
    
    
    }
    
    并在for循环中添加以下行:

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

这需要81个按钮。.1)为了更快地获得更好的帮助,发布一个或。2)Java GUI必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作。在不同的地区使用不同的PLAF。因此,它们不利于像素完美的布局。相反,请使用布局管理器,或者与布局填充和边框一起使用。
bouton = new JButton();