[英]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.