проверка JTextField после TAB - PullRequest
       3

проверка JTextField после TAB

2 голосов
/ 06 ноября 2011

Я использую следующий код для проверки текста в JTextFields Text1 и Text2.

private void Text1KeyPressed(java.awt.event.KeyEvent evt) {
    Text1.addKeyListener(new KeyAdapter() {
          public void keyPressed(KeyEvent EVT) {
                if(EVT.getKeyCode() == EVT.VK_TAB){
                     String value = Text1.getText();
                     int l = value.length();
                     if (EVT.getKeyChar() >= '0' && EVT.getKeyChar() <= '9') {
                          Text1.setEditable(true);     
                     } else {
                          Text1.setEditable(true);
                          Text2.setEditable(false);
                          label.setText("* Enter only numeric digits(0-9)");
                     }
                 }
          }
});

Когда я пытаюсь ввести новое правильное значение после неверного значения в Text1, Text2 по-прежнему недоступен для редактирования,Я что-то упустил?

Ответы [ 3 ]

3 голосов
/ 06 ноября 2011

Потому что, когда вы вводите неверное значение, а затем проверяете его, вы отключаете поле Text2, а затем не включаете его снова в своем коде ...

Я не знаю, что вы хотитедобиться от вашего вопроса, но, может быть, этого достаточно, добавив набор редактируемый для Text2 здесь:

               if (EVT.getKeyChar() >= '0' && EVT.getKeyChar() <= '9') {
                            Text1.setEditable(true);
                            Text2.setEditable(true);
                    }
3 голосов
/ 06 ноября 2011

лучше было бы реализовать JFormattedTextField с Number Formatter, разрешить ввод десятичного разделителя, отрицательный знак и числа в диапазоне 0-9,

для прослушивания изменений в TextComponents есть DocumentListener

пример здесь

3 голосов
/ 06 ноября 2011

Вы никогда не сделаете Text2 редактируемым снова. Где-то у вас должна быть строка:

Text2.setEditable(true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...