Java GridLayout-按钮、数组和图像?
我想制作一个9x9数组,并上传带有图标JButtons的数组。我真的不明白为什么它不起作用。。。我希望你能帮忙,谢谢Java GridLayout-按钮、数组和图像?,java,swing,layout-manager,grid-layout,Java,Swing,Layout Manager,Grid Layout,我想制作一个9x9数组,并上传带有图标JButtons的数组。我真的不明白为什么它不起作用。。。我希望你能帮忙,谢谢 BWbutton buttons[][] = new BWbutton[9][9]; JPanel p1 = new JPanel(); p1.setBackground(Color.white); p1.setPreferredSize(new Dimension(500,500)); p1.setLayout(new GridLayo
BWbutton buttons[][] = new BWbutton[9][9];
JPanel p1 = new JPanel();
p1.setBackground(Color.white);
p1.setPreferredSize(new Dimension(500,500));
p1.setLayout(new GridLayout(9,9,40,40));
for(int i=0; i<9; i++){
for(int j=0; j<9; j++){
buttons[i][j]=new BWbutton();
p1.add(buttons[i][j]);
}
}
您扩展了JButton类,但在代码中创建了一个新的JButton:
ImageIcon icon = new ImageIcon("image.png");
JButton bt1 = new JButton(icon);
这意味着您有两个按钮:
ImageIcon icon = new ImageIcon("image.png");
//JButton bt1 = new JButton(icon);
setIcon( icon );
更好的是,甚至不要创建BWbutton类,因为您没有向按钮添加任何新功能
相反,在循环代码中,只需创建一个按钮并设置图标:
//buttons[i][j]=new BWbutton();
JButton button = new JButton( new ImageIcon("image.png") );
buttons[i][j]= button;
更好的方法是在循环外创建一次图像图标,然后您可以在所有按钮上共享该图标 您扩展了JButton类,但在代码中创建了一个新的JButton:
ImageIcon icon = new ImageIcon("image.png");
JButton bt1 = new JButton(icon);
这意味着您有两个按钮:
ImageIcon icon = new ImageIcon("image.png");
//JButton bt1 = new JButton(icon);
setIcon( icon );
更好的是,甚至不要创建BWbutton类,因为您没有向按钮添加任何新功能
相反,在循环代码中,只需创建一个按钮并设置图标:
//buttons[i][j]=new BWbutton();
JButton button = new JButton( new ImageIcon("image.png") );
buttons[i][j]= button;
更好的方法是在循环外创建一次图像图标,然后您可以在所有按钮上共享该图标 非常感谢你!这真的很有帮助……它起作用了!:)如果这有助于解决问题,请告诉我。非常感谢!这真的很有帮助……它起作用了!:)如果这有助于解决问题,请告诉我。