我需要在学校创建一个简单的扫雷游戏。我想制作一个JButton-Array以方便使用。但它不起作用!我摔倒了,就像我在整个互联网上寻找解决方案一样!你能帮助我吗?这是代码:
public class Minesweeper extends Applet {
public void init() {
//Frameinitialiing
JFrame frame = new JFrame("Minesweeper");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
int width = 800;
frame.setSize(width, width);
frame.setResizable(false);
frame.setLocation(0,0);
frame.setVisible(true);
//Game
JPanel panel = new JPanel();
panel.setLayout(null);
frame.add(panel);
//Buttons
int w = 80;
JButton[][] button = new JButton[10][10];
for (int i = 1; i == 9 ; i++ ) {
for (int j = 1; j == 9 ; j++ ) {
button[i][j].setBounds(i*80 , j*80 , w , w);
this.add(button[i][j]);
}
}
}
}
答案 0 :(得分:1)
您的代码有很多需要更改的地方。但是我已经为你改变了它们:
JFrame frame = new JFrame("Minesweeper");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
int width = 800;
frame.setSize(width, width);
frame.setResizable(false);
frame.setLocation(0,0);
frame.setVisible(true);
int w = 80;
JButton[][] button = new JButton[10][10];
for (int i = 0; i < 10 ; i++ ) {
for (int j = 0; j < 10 ; j++ ) {
button[i][j] = new JButton();
button[i][j].setBounds(i*80 , j*80 , w , w);
frame.add(button[i][j]);
}
}
首先,for循环是错误的。你似乎弄乱了数字。这两个循环应该都是= 0
和< 10
。另外,我删除了这三行:
JPanel panel = new JPanel();
panel.setLayout(null);
frame.add(panel);
您忘记了使用new JButton()
初始化按钮,所以我为您做了。
最后,它是frame.add(button[i][j])
而不是this.add(button[i][j])
。
看起来像这样: