как ограничить jFormattedTextField - PullRequest
0 голосов
/ 20 августа 2010

У меня есть jFormattedTextFiled для поля «Имя». Я должен ограничить поле, чтобы ввести только 25 символов. если введено больше, должно отображаться какое-то сообщение ... для сообщения я могу использовать JOptionpane ..

Как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 20 августа 2010

Использование KeyStrokeListener было бы плохой идеей, так как оно вызывало бы событие, даже когда нажаты неписываемые клавиши, такие как SHIFT, стрелки и тому подобное.

Используя конструктор, использующий формат, вы можете сначала убедиться, что будут отображаться и вводиться только 25 первых символов (например, используя MaskFormatter , как сказано в Java Tutorial ).

1 голос
/ 20 августа 2010

Использование JFormattedTextField не позволит вам отобразить JOptionPane с сообщением, так как вы услышите звуковой сигнал при попытке ввести дополнительные символы.Тем не менее, это, вероятно, более распространенный подход, а не отображение всплывающего окна каждый раз.

Однако, если вы действительно хотите всплывающее окно, вам необходимо использовать DocumentFilter.В разделе из учебника Swing по Реализация фильтра документов приведен пример того, как вы хотите.Все, что вам нужно сделать, это заменить «звуковой» код для отображения всплывающего окна.

0 голосов
/ 20 августа 2010

Я надеюсь, что это также будет работать

Добавьте кейлист в соответствующее текстовое поле и в случае нажатия клавиши напишите следующий код

JTextField jTextField1=new JTextField();

jTextField1.setText(""); //intially the textfield is empty

void jTextField1_keyPressed(KeyEvent e) {

    int len=jTextField1.getText().length();

    System.out.println("hello1::"+len);

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