【发布时间】:2013-11-06 16:48:48
【问题描述】:
我之前以更大的形式发布了这个问题,并希望以一种允许社区更好地帮助我的方式再次发布这个问题,减少关于你们所有人的信息。
基本上,我有这段代码,解释如下:
for(JMenuItem x : chem3_x_y){
x.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent k) {
new SwingImplementation(1, tt+1);
}
});
gEleven[6].add(x);
tt++;
}
tt=0;
首先,我循环遍历数组 chem3_x_y 中的所有 JMenuItem-s
然后,我将一个 ActionListener 添加到“x”或数组的每个项目,这将创建一个新的 SwingImplementation,其参数为 1,变量“tt”
在此之后,JMenu gEleven 接收到有问题的 JMenuItem,然后我将 tt 增加 1。
上述代码的目的是自动化将 JMenuItems 添加到 gEleven 和 ActionListeners 到每个菜单项的过程。
问题,为变量 'tt' 传递的参数始终相同,为 1,就好像将 'tt' 参数为 1 的动作侦听器应用于每个 JMenuItem - 为什么会这样,以及如何我使用不断增加的 tt 创建一个 ActionListener per JMenuItem,参数为 (1, tt) 而 tt 始终为 1
【问题讨论】:
-
您的代码格式非常糟糕,我们很难理解您的代码。我已经尽力解决了。
-
如需尽快获得更好的帮助,请发帖 SSCCE。我相信您已经被告知,以及使用更明智的属性名称。如果您无视我们的回答和建议,也许我们应该忽略您的问题。
-
我怀疑您的问题出在其他地方,您需要进行一些调试。
-
@Andrew,我希望你不这样做 - 我已经尝试过制作其中之一,但是我的程序很大,如果不使其无法运行,我就无法删减很多内容,并且你是什么意思,我向你保证,我用合理的名字向你保证,我不再用数字来命名我的变量,还有什么可做的?
-
?????我不知道你刚才问了什么。同样,我相信您发布的代码不会导致您的问题。我同意 Andrew 的观点,您必须付出一些努力来隔离您的错误。同样,如果您在此处发布代码供我们审查,请稍加努力以使其格式化。我们是志愿者,这当然对你要求不高。
标签: java arrays swing for-loop actionlistener