我想添加ActionEvent到81 JButtons如何使用尽可能少的代码来做到这一点?我试过使用循环来完成这项工作,但我在程序本身遇到问题。这是我认为足以从中获得答案的代码的一部分。为许多JButton添加ActionEvent
public void actionPerformed(ActionEvent e) {
if(e.getSource()==tiles[0]) {
n=0;
x=1;
y=1;
detectMines();
setProperties(n,x,y);
}
if(e.getSource()==tiles[1]) {
n=1;
x=1;
y=2;
detectMines();
setProperties(n,x,y);
}
if(e.getSource()==tiles[2]) {
n=2;
x=1;
y=3;
detectMines();
setProperties(n,x,y);
}
if(e.getSource()==tiles[3]) {
n=3;
x=1;
y=4;
detectMines();
setProperties(n,x,y);
}
if(e.getSource()==tiles[4]) {
n=4;
x=1;
y=5;
detectMines();
setProperties(n,x,y);
}
if(e.getSource()==tiles[5]) {
n=5;
x=1;
y=6;
detectMines();
setProperties(n,x,y);
}
你都知道了,这里是我的代码使用上面也许这将帮助解决这里我的问题的功能。
public void setProperties(int n, int x, int y){
if(grid[x][y]=="1") {
slives--;
Icon phpicon = new ImageIcon(getClass().getResource("resources/"+p1hp[slives]));
shp.setIcon(phpicon);
tiles[n].setIcon(icon);
tiles[n].setDisabledIcon(icon);
tiles[n].setEnabled(false);
mines=0;
if(slives==0){
message = "lose";
sendData(message);
JOptionPane.showMessageDialog(null,"You Have No Life Left! You Lose!");
System.exit(0);
}
else{
message = "mines";
sendData(message);
JOptionPane.showMessageDialog(null,"BOOOOOOOOOOM!");
}
}
else if(grid[x][y]=="2") {
clives--;
Icon phpicon = new ImageIcon(getClass().getResource("resources/"+p2hp[clives]));
chp.setIcon(phpicon);
tiles[n].setIcon(powerups);
tiles[n].setDisabledIcon(powerups);
tiles[n].setEnabled(false);
mines=0;
turn--;
message = "powerups";
sendData(message);
JOptionPane.showMessageDialog(null,"Powerups -HP To Enemy!");
if(turn==0){
message = "win";
sendData(message);
JOptionPane.showMessageDialog(null,"You Cleared All The Mines You Win!");
System.exit(0);
}
}
else {
str=Integer.toString(mines);
tiles[n].setText(str);
UIManager.getDefaults().put("Button.disabledText",Color.BLUE);
tiles[n].setEnabled(false);
mines=0;
turn--;
if(turn==0){
message = "win";
sendData(message);
JOptionPane.showMessageDialog(null,"You Cleared All The Mines You Win!");
System.exit(0);
}
}
}
对不起,代码可能不正确。
哪个屏幕可以容纳81个Jbutton将? – kosa
@Nambari我从上下文中假设这些是代表扫雷平方的小JButton。 –
如何创建按钮阵列,并通过for循环添加它们,并且在每一步中都可以为特定按钮添加动作侦听器。 –