所以我知道这是一个热门问题并且已经找到了解决方案。但当我尝试这个时,它无法正常工作。
我的 JTextField 为空且按钮未启用。当我在文本字段中写入内容时,按钮不会启用。
所以我的程序应该每秒检查该字段是否为空。一旦有人在文本字段中写入内容,按钮就应该被启用。^^
loginbt = new JButton("Login");
loginbt.addActionListener(new loginHandler());
add(loginbt);
if(name.getText().equals("")) {
loginbt.setEnabled(false);
}else {
loginbt.setEnabled(true);
}
为此,您需要为
DocumentListener
添加更改侦听器(一个 JTextField
,对文本中的更改做出反应),并且在 actionPerformed()
内,您需要根据是否将 loginButton
更新为启用/禁用JTextfield
是否为空。
以下是我从这个线程中发现的内容。
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();
您需要的是一种称为文档侦听器的东西。请参阅如何编写文档侦听器。
检查 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");
}
尝试这个并改变布尔语句。
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("");
}
}
你可以使用
`loginbt = new JButton("登录"); loginbt.addActionListener(新的loginHandler()); 添加(登录);
if(String.valueOf(name.getText()).isEmpty() {
loginbt.setEnabled(false);
}else {
loginbt.setEnabled(true);
}
`
尝试在文本字段中使用 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) {
}
});
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");
}
}