簡體   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