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

时间:2012-05-08 04:38:40

标签: java actionlistener

这是我的代码的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]);
}

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

1 个答案:

答案 0 :(得分:0)

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


请注意一些使您的代码更清洁的建议:

  • 不需要StringBuffer:只需使用String.valueOf((char)(i+'a'))
  • 即可
  • 我不会对您拥有的所有按钮使用相同的ActionListener,因为这会使您的actionPerformed方法变得混乱。 Anonymous inner classes在这里很有用。
相关问题