读书人

Java swing中数组JPanel[]可不可以循环

发布时间: 2013-02-25 10:23:36 作者: rapoo

Java swing中数组JPanel[]能否循环绑定监听事件
private ImagePanel[] panel = new ImagePanel[20];
private int i=0;
for(;i<panel.length;i++){
panel[i].addMouseListener(new MouseListener() {
public void mouseReleased(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseClicked(MouseEvent e) {
JOptionPane.showMessageDialog(PkView.this, i+"号位置", "单体信息", JOptionPane.DEFAULT_OPTION);
}
});
}
这样输出的位置始终是最后一个,我只能把20个数组元素都单独绑定了吗?跪求解决! java swing 循环 数组 监听
[解决办法]
当你添加完所有的listener之后,i等于panel.length-1;
当然任何panel在触发MouseListener时,其中JOptionPane.showMessageDialog(PkView.this, i+"号位置", "单体信息", JOptionPane.DEFAULT_OPTION);中的i还是获取的private int i。
所以产生了每次都是最后一个现象。

解决办法应该将panel编号单独保存起来。

读书人网 >J2SE开发

热点推荐