当前位置: 代码迷 >> J2SE >> java 创造JButton[][] 无法解决单个按钮监听?
  详细解决方案

java 创造JButton[][] 无法解决单个按钮监听?

热度:161   发布时间:2016-04-24 17:29:16.0
java 创建JButton[][] 无法解决单个按钮监听???
JButton[][]   button=new   JButton[11][11];

public   void   init()
{
int   i   =   0,j=0;
setLayout(new   GridLayout(10,10));
for(;i <10;i++)
{
j=0;
for(;j <10;j++)
{
button[i][j]=new   JButton(unknownIcon);
add(button[i][j]);
button[i][j].addMouseListener(new   MouseAdapter()                                 {
public   void   mouseClicked(MouseEvent   e)
{
***button[i][j].setIcon(openIcon);
                                                                         
                                                        }
});

***标注那一行提示:不能引用另一方法中定义的内部类中非终态变量   i
而将ij放到init外后***button[i][j].setIcon(openIcon);调用ij时ij的值永远是0
急救       (具体我就是想实现创建一个按钮组   并且每个按钮有单独的监听   而监听结果是相同的)

------解决方案--------------------
button[i][j].addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1) {

((JButton)e.getSource()).setIcon(openIcon);

}
if (e.getButton() == MouseEvent.BUTTON3) {
((JButton)e.getSource()).setIcon(flagIcon);
}
}
});

帮你改好了
  相关解决方案