Вы должны использовать DocumentListener
для той, которая вызывается каждый раз, когда изменения текста. Это будет выглядеть примерно так:
class MyDocumentListener implements DocumentListener {
@Override
public void insertUpdate(DocumentEvent e) {
update();
}
@Override
public void removeUpdate(DocumentEvent e) {
update();
}
@Override
public void changedUpdate(DocumentEvent e) {}
public void update(DocumentEvent e) {
String text = nmrintervTXT.getText();
try{
evidenceOtherApplicantsTXT.setEnabled(Integer.parseInt(text) > 1);
} catch(NumberFormatException nfe){
evidenceOtherApplicantsTXT.setEnabled(false);
}
}
}
сделать что внутренний класс (или, в качестве альтернативы, передать текстовое поле и поле со списком в качестве параметров в конструкторе и хранить их), и добавить его в текстовое поле, и он проверяет, что текст является целым числом, большим, чем по одному в каждом обновлении для текста, и установите, включено ли поле со списком в правильное значение.
nmrintervTXT.getDocument().addDocumentListener(new MyDocumentListener());
Так что вам нужно сделать некоторые изменения, подобные этим (адаптированные к деталям, как реализован код):
public class MyClass{
JTextField nmrintervTXT;
public static void main(String[] args){
/*
* Code initializing your gui
*/
nmrintervTXT = new JTextField();
nmrintervTXT.getDocument().addDocumentListener(new MyDocumentListener());
/*
* The rest of your initialization code
*/
}
class MyDocumentListener implements DocumentListener {
/*
* Implementation from above
*/
}
}
Для получения дополнительной информации вы можете увидеть Oracle's tutorial on the subject.
См. [Как написать прослушиватель документов] (https://docs.oracle.com/javase/tutorial/uiswing/events/documentlistener.html). –