需要帮助在java中创建正确的操作侦听器吗
好的,所以每个文本字段都是动作侦听器。我做了很多测试,发现添加操作侦听器不是问题所在。问题出在下面的代码中,因为对于前四个文本字段,会显示hello窗口,但不会显示ok。但是在底部,ok窗口和hello窗口会弹出。我做错了什么需要帮助在java中创建正确的操作侦听器吗,java,Java,好的,所以每个文本字段都是动作侦听器。我做了很多测试,发现添加操作侦听器不是问题所在。问题出在下面的代码中,因为对于前四个文本字段,会显示hello窗口,但不会显示ok。但是在底部,ok窗口和hello窗口会弹出。我做错了什么 public class handler implements ActionListener { public void actionPerformed(ActionEvent event) { if (event.getSource()
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");
}
}
你遇到的问题是你在做一个肤浅的比较:
event.getSource() == textX
因此,您永远不会满足if-else中的任何条件,也永远不会看到text1的“ok”对话框。。。文本4
看起来您正试图对多个文本字段使用单个ActionListener,然后根据事件源(事件发生的文本字段)区分行为
<>而不是这样做,您可能想考虑为每个文本字段创建一个AccistListInter实现。
我通常将ActionListener创建为匿名类,以便在事件发生时自定义特定字段的操作,但我不必在应用程序中大量增加类 尝试使用
.equals(…)
而不是=
,还有,预期的行为是什么?非常感谢!我已经在这上面呆了一段时间了。