需要帮助在java中创建适当的动作侦听器

时间:2012-10-03 02:20:39

标签: java

好的,所以每个文本字段都是动作监听器。我做了很多测试,发现添加动作监听器不是问题。问题出现在下面的代码中,因为对于前四个文本字段,hello窗口显示但不是ok。但是在底部,弹出ok窗口和hello窗口。我做错了什么?

public class handler implements ActionListener
{
    public void actionPerformed(ActionEvent event)
    {
        if (event.getSource() == text)
        {
            JOptionPane.showMessageDialog(null, "ok");
        }
        else if (event.getSource() == text1)
        {
            JOptionPane.showMessageDialog(null, "ok");
        }
        else if (event.getSource() == text2)
        {
            JOptionPane.showMessageDialog(null, "ok");
        }
        else if (event.getSource() == text3)
        {
            JOptionPane.showMessageDialog(null, "ok");
        }
        else if (event.getSource() == text4)
        {
            JOptionPane.showMessageDialog(null, "ok");
        }
        JOptionPane.showMessageDialog(null, "hello");
    }
}

1 个答案:

答案 0 :(得分:1)

你遇到的问题是你正在做一个浅薄的比较:

event.getSource() == textX

因此,您永远不会遇到if-else中的任何条件,也永远不会看到text1 ... text4的“ok”对话框。

看起来您正在尝试将单个ActionListener用于多个文本字段,然后根据事件源(发生事件的文本字段)区分行为。

您可能需要考虑为每个文本字段创建一个ActionListener实现,而不是这样做。

我通常将我的ActionListeners创建为匿名类,以便我可以在事件发生时自定义我想要为特定字段发生的事情,但我不必在应用程序中扩展类。