繁体   English   中英

按下按钮时没有任何反应

[英]Nothing happens when a button is pressed

我正在创建一个程序,让用户输入 function x 的值,下面的代码片段:

JLabel f1= new JLabel (" x1 = ");
JLabel f2 = new JLabel (" x2 = ");

JButton submit = new JButton("Submit values");
submit.addActionListener(this);

JTextField x1 = new JTextField();
JTextField x2 = new JTextField();

inputPanel.add(f1);
inputPanel.add(x1);
inputPanel.add(f2);
inputPanel.add(x2);

inputPanel.add(submit);

它看起来像这样:

x1 = [input field] x2 =[input field] (submit values)

我的 ActionPerformed 方法如下所示:

public void actionPerformed(ActionEvent e)
{
    if("submit".equals(e.getActionCommand()))
    {
        System.out.println("click");
    }
}

我添加了 System.out.println 来检查程序是否知道我何时单击提交按钮,但是控制台没有打印任何内容,我的问题是为什么以及如何更改它?

我想问的另一件事是如何同时输入 x1、x2 的输入? 我知道我可能需要一个 if function 来检查所有字段是否为空白?

"submit".equals(e.getActionCommand())替换为e.getSource()==submit ,它应该可以按预期工作。

您应该为“提交”按钮显式设置操作命令。 像这样:

JButton submit = new JButton("Submit values");
submit.addActionListener(this);
submit.setActionCommand("submit");

请记住,您应该为Component (在此处指JButton )设置一个操作命令,然后才能将操作命令传递给ActionEvent

问题在于您的 actionCommand。

JButton submit = new JButton("Submit values");

如果您没有明确设置操作命令,它会恢复为Button text

如果您的按钮文本太长或使用不便,请执行以下操作:

submit.setActionCommand("submit");

尝试声明一个匿名内部 class,这将为您的按钮创建一个动作侦听器。 此外,如果您决定将来添加更多按钮,这将很有用,因为您可以为每个按钮声明一个新的 class。 请记住稍后定义 submitButtonPressed() 。

您的代码如下所示:

    JButton submit = new JButton("Submit values");
    submit.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            submitButtonPressed();
        }
    });

暂无
暂无

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

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