繁体   English   中英

Java-我无法让两个actionListeners正常工作

[英]Java - I can't get two actionListeners to work right

这是我代码的ActionListener部分。 专注于重置按钮。

public void actionPerformed( ActionEvent e) {
    int i;
    for (i = 0; i < 26; i++) {
        if (e.getSource() == a[i]) { 
            consultWord(i); 
        }
    }

    if (e.getSource() == reset) {
        Hangman gui = new Hangman();
        System.out.print("test");
        gui.go();
    }
}   

显然,它上面还有更多的内容(因为这是非常极端的)。 按钮数组1(if语句顶部)可以完美工作。 按钮2(if语句下方)根本不起作用。 测试输出文本不会出现。 这是我声明变量的地方。 (它们可用于所有代码)。

JButton reset = new JButton("Reset");
private Button a[];

如果对您来说有任何意义,这是设置a []按钮的代码。

int i;
StringBuffer buffer;
a = new Button[26];
topPanel.setLayout( new GridLayout( 4,0, 10, 10) );
for (i = 0; i <26; i++) {
    buffer = new StringBuffer();
    buffer.append((char)(i+'a'));
    a[i] = new Button(buffer.toString());
    a[i].setSize(100,100);
    a[i].addActionListener( this );
    topPanel.add(a[i]);
}

有什么想法为什么我的底部按钮没有下蹲吗? 如果需要,我将粘贴整个代码。

也许您只是忘记了将ActionListener添加到您的reset按钮中? 上面的代码中缺少此信息...


附带说明一下一些使代码更整洁的建议:

  • 不需要StringBuffer :只需使用String.valueOf((char)(i+'a'))
  • 我不会对所有按钮使用相同的ActionListener ,因为这会使您的actionPerformed方法混乱。 匿名内部类在这里可能很有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM