Java - проверьте, не является ли JTextField пустым или нет.
Итак, я понял, что это популярный вопрос и уже нашел решение. Но когда я пытаюсь это сделать, он работает неправильно.
My JTextField пуст, и кнопка не включена. Когда я пишу что-то в своем текстовом поле, кнопка не включается.
Итак, моя программа должна проверять это поле каждую секунду, пустое или нет. Как только кто-то что-то пишет в текстовое поле, кнопка должна быть включена. ^^
loginbt = new JButton("Login");
loginbt.addActionListener(new loginHandler());
add(loginbt);
if(name.getText().equals("")) {
loginbt.setEnabled(false);
}else {
loginbt.setEnabled(true);
}
Ответы
Ответ 1
Для этого вам нужно добавить прослушиватель изменений (a 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);
}
}
});
Ответ 2
Далее возвращается значение true, если имя "JTextField" не содержит текста:
name.getText().isEmpty
Ответ 3
Что вам нужно, так называется Document Listener. См. Как написать прослушиватель документов.
Ответ 4
Ну, код, который делает кнопку включен/отключен:
if(name.getText().equals("")) {
loginbt.setEnabled(false);
}else {
loginbt.setEnabled(true);
}
должен быть записан в javax.swing.event.ChangeListener
и прикреплен к полю (см. здесь). Изменение значения поля должно заставить слушателя пересмотреть состояние объекта. Что вы ожидали?
Ответ 5
Для проверки JTextFiled пусто или нет:
if( (billnotf.getText().length()==0)||(billtabtf.getText().length()==0))
Ответ 6
используйте следующий код:
if(name.getText().equals(""))
{
loginbt.disable();
}
Ответ 7
Попробуйте это
if(name.getText() != null && name.getText().equals(""))
{
loginbt.setEnabled(false);
}
else
{
loginbt.setEnabled(true);
}
Ответ 8
if(name.getText().hashCode() != 0){
JOptionPane.showMessageDialog(null, "not empty");
}
else{
JOptionPane.showMessageDialog(null, "empty");
}
Ответ 9
Попробуйте с 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) {
}
});