我想制作一个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 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]);
}
}
BWbutton.java:
import javax.swing.*;
public class BWbutton extends JButton{
public BWbutton(){
ImageIcon icon = new ImageIcon("image.png");
JButton bt1 = new JButton(icon);
}
}
答案 0 :(得分:2)
扩展JButton类,但在代码中创建一个新的JButton:
ImageIcon icon = new ImageIcon("image.png");
JButton bt1 = new JButton(icon);
这意味着您有两个按钮:
不要创建新的JButton。相反,您只需要:
ImageIcon icon = new ImageIcon("image.png");
//JButton bt1 = new JButton(icon);
setIcon( icon );
更好的是,甚至不创建BW按钮类,因为您没有为按钮添加任何新功能。
只需在循环代码中创建一个按钮并设置Icon:
//buttons[i][j]=new BWbutton();
JButton button = new JButton( new ImageIcon("image.png") );
buttons[i][j]= button;
更好的是只需在循环外创建图像图标,然后就可以在所有按钮上共享图标。