2010-08-20 2 views
0

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

Как это сделать?

ответ

2

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

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

+1

Я был на неправильном пути. Вот как это работает для текстовых полей formattet. –

0

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

Добавить KeyListener заинтересованному текстовое поле и в Keypressed случае написать следующий код

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); 
} 
+0

Это нехороший подход. Пользователь может вставлять текст в текстовое поле, которое может содержать несколько символов. Кроме того, как только текстовое поле заполнено и вы сделаете поле не редактируемым, как пользователь может редактировать поле для удаления символов, если была сделана ошибка ввода? – camickr

1

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

Однако, если вы действительно хотите всплывающее окно, вам необходимо использовать DocumentFilter. В разделе из учебника Swing от Implementing a Document Filter приведен пример того, как вы хотите. Все, что вам нужно сделать, это заменить код «beep», чтобы отобразить всплывающее окно.

Смежные вопросы