【发布时间】:2014-10-10 18:45:32
【问题描述】:
我正在学习使用 Java Swing 类进行事件处理。 我根据新波士顿主页上的教程尝试了不同的组合。我已经创建了一个定义面板、JButtons、JTextfields 和 Jlabels 的类。我创建了一个名为“handler”的类,其中包含 ActionPerfomed 方法,并将两个文本字段(item1 和 item2)连接到 addActionlistener 方法。 当我运行我的程序时,我让程序对两个文本字段执行我想要的操作(这会提示一个 JOptionPane.showMessageDialog 框来显示我想要的文本。
当我希望 JOptionPane.showMessageDialog-window 在我按下其中一个按钮时显示特定文本时,问题就出现了: - 而不是显示以下文本“您按下了 1 号按钮!”正如我希望我的代码那样,而是出现了一个空的 JOptionPane.showMessageDialog-window。
我认为有经验的 Java 程序员会很容易看到我的代码中的错误。
这里是一定是错的部分代码:
private class thehandler implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String text ="";
if(event.getSource() == item1)
text = String.format("You wrote %s in field 1!", event.getActionCommand());
else if (event.getSource() == item2)
text = String.format("You wrote %s in field 2!", event.getActionCommand());
else if (event.getSource() == button1)
text = "You pushed button number 1!";
else if (event.getSource() == button2)
text = "You pushed button number 2!";
JOptionPane.showMessageDialog(null, text);
【问题讨论】:
-
弹出对话框说明
ActionListener被触发了。由于它显示的是一个空字符串,因此事件的来源很可能不是您所期望的。 -
考虑发布MCVE。您确定 item1、item2、button1 和 button2 已正确初始化吗?
标签: java swing event-handling action actionlistener