簡體   English   中英

Java - 檢查 JTextField 是否為空

[英]Java - Check if JTextField is empty or not

所以我知道這是一個流行的問題,並且已經找到了解決方案。 但是當我嘗試這個時它不能正常工作。

我的 JTextField 是空的,並且該按鈕未啟用。 當我在我的文本字段中寫一些東西時,按鈕沒有被啟用。

所以我的程序應該每秒檢查一次這個字段是否為空。 只要有人在文本字段中寫入內容,就應該啟用該按鈕。^^

loginbt = new JButton("Login");
    loginbt.addActionListener(new loginHandler());
    add(loginbt);

    if(name.getText().equals("")) {
        loginbt.setEnabled(false);
    }else {
        loginbt.setEnabled(true);
    }

為此,您需要為您的JTextField添加更改偵聽器(對文本更改做出反應的DocumentListener ),並且在actionPerformed()中,您需要根據JTextfield是否為空來將loginButton更新為啟用/禁用。

下面是我從這個線程中找到的。

yourJTextField.getDocument().addDocumentListener(new DocumentListener() {
  public void changedUpdate(DocumentEvent e) {
    changed();
  }
  public void removeUpdate(DocumentEvent e) {
    changed();
  }
  public void insertUpdate(DocumentEvent e) {
    changed();
  }

  public void changed() {
     if (yourJTextField.getText().equals("")){
       loginButton.setEnabled(false);
     }
     else {
       loginButton.setEnabled(true);
    }

  }
});

如果 JTextField name不包含文本,以下將返回 true:

name.getText().isEmpty();

你需要的是一個叫做 Document Listener 的東西。 請參閱如何編寫文檔偵聽器

檢查 JTextFiled 是否為空條件:

if( (billnotf.getText().length()==0)||(billtabtf.getText().length()==0))

好吧,使按鈕啟用/禁用的代碼:

if(name.getText().equals("")) {
    loginbt.setEnabled(false);
}else {
    loginbt.setEnabled(true);
}

必須用javax.swing.event.ChangeListener編寫並附加到字段(請參見此處)。 字段值的更改應觸發偵聽器重新評估對象狀態。 你期待什么?

使用以下代碼:

if(name.getText().equals(""))
{
loginbt.disable();
}

您可以根據需要使用isEmpty()isBlank()方法。


當且僅當 length() 為 0 時返回 true。

this.name.getText().isEmpty();

如果字符串為空或僅包含空白代碼點,則返回 true,否則返回 false

this.name.getText().isBlank();

嘗試這個

if(name.getText() != null && name.getText().equals(""))
{
        loginbt.setEnabled(false);
}
else
{
        loginbt.setEnabled(true);
}
if(name.getText().hashCode() != 0){
    JOptionPane.showMessageDialog(null, "not empty");
}
else{
    JOptionPane.showMessageDialog(null, "empty");
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // Submit Button        

    String Fname = jTextField1.getText();
    String Lname = jTextField2.getText();
    String Desig = jTextField3.getText();
    String Nic = jTextField4.getText();
    String Phone = jTextField5.getText();
    String Add = jTextArea1.getText();
    String Dob = jTextField6.getText();
    // String Gender;
    // Image

    if (Fname.hashCode() == 0 || Lname.hashCode() == 0 || Desig.hashCode() == 0 || Nic.hashCode() == 0 || Phone.hashCode() == 0 || Add.hashCode() == 0)
    {
        JOptionPane.showMessageDialog(null, "Some fields are empty!");
    }
    else
    {
        JOptionPane.showMessageDialog(null, "OK");
    }
}

試試這個並改變布爾語句。

String text = name.getText(); 
if(!text.isEmpty()) {
    loginbt.setEnabled(true);
}else {
    loginbt.setEnabled(false);
}

在我的行動方法中,它工作得很好。

public void actionPerformed(ActionEvent e){
    String inputText = e.getActionCommand();
    String itext = text1.getText();
    if(inputText.equals("Submit") && !itext.isEmpty()){
        label1.setText(text1.getText());
        text1.setText("");
    }
}

嘗試在您的文本字段中使用 keyListener

jTextField.addKeyListener(new KeyListener() {

        @Override
        public void keyTyped(KeyEvent e) {
        }

        @Override
        public void keyPressed(KeyEvent e) {
            if (text.getText().length() >= 1) {
                button.setEnabled(true);
            } else {
                button.setEnabled(false);
            }
        }

        @Override
        public void keyReleased(KeyEvent e) {
        }

    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM