public int open=0;
private JButton opens[]=new JButton[1];
for( i=0; i<buttons.length; i++){
for (j=0; j<buttons[i].length;j++){
n=i*buttons.length+buttons[i].length;
buttons[i][j]=new JButton();
panel.add(buttons[i][j]);
buttons[i][j].addActionListener(this);
}
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() instanceof JButton){
JButton pressedButton = (JButton) e.getSource();
opens[open]=(JButton) e.getSource();
if((pressedButton.getIcon() == null)){
pressedButton.setIcon(new ImageIcon(getClass().getResource("/images/2.jpg")));
open=open++;
} else {
//pressedButton.setIcon(null);
}
}
if (open==1){
opens[0].setIcon(null);
opens[1].setIcon(null);
}
}
我想点击JButton
然后关闭或保持打开状态。我怎么能保持数组或其他东西?
我的阵列控制错了?
使用此代码,我可以打开无限图像,但没有一个被关闭。
答案 0 :(得分:1)
我试图在数组中保存2个图像,然后如果它们将关闭它们 不一样。这是一个记忆游戏。只能打开2张图片
将图片加载到本地变量Icon/ImageIcons,以避免任何FileIO含义代码行pressedButton.setIcon(new ImageIcon(getClass().getResource("/images/2.jpg")));
将此Icon/ImageIcons
添加到JButton.setPressedIcon(myIcon),
然后使用Icon
pressedButton.setIcon(null);
无用的代码行