GridLayout - JButtons、数组和图像?
GridLayout - JButtons, array and images?
我想制作一个 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);
}
}
您扩展了 JButton class,但随后在您的代码中创建了一个新的 JButton:
ImageIcon icon = new ImageIcon("image.png");
JButton bt1 = new JButton(icon);
这意味着您有两个按钮:
- 您添加到 GUI 中的 class 本身没有图标和
- 您创建但从未使用过的按钮。
不要创建新的 JButton。相反,您只需要:
ImageIcon icon = new ImageIcon("image.png");
//JButton bt1 = new JButton(icon);
setIcon( icon );
最好不要创建 BWbutton class,因为您没有向按钮添加任何新功能。
而是在循环代码中创建一个按钮并设置图标:
//buttons[i][j]=new BWbutton();
JButton button = new JButton( new ImageIcon("image.png") );
buttons[i][j]= button;
更好的是只在循环外创建图像图标,然后您可以在所有按钮上共享图标。
我想制作一个 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);
}
}
您扩展了 JButton class,但随后在您的代码中创建了一个新的 JButton:
ImageIcon icon = new ImageIcon("image.png");
JButton bt1 = new JButton(icon);
这意味着您有两个按钮:
- 您添加到 GUI 中的 class 本身没有图标和
- 您创建但从未使用过的按钮。
不要创建新的 JButton。相反,您只需要:
ImageIcon icon = new ImageIcon("image.png");
//JButton bt1 = new JButton(icon);
setIcon( icon );
最好不要创建 BWbutton class,因为您没有向按钮添加任何新功能。
而是在循环代码中创建一个按钮并设置图标:
//buttons[i][j]=new BWbutton();
JButton button = new JButton( new ImageIcon("image.png") );
buttons[i][j]= button;
更好的是只在循环外创建图像图标,然后您可以在所有按钮上共享图标。