У меня есть JTextPane, где я хочу ограничить пользователя вводить сообщение только с 200 символами. Итак, у меня есть KeyListener, который прослушивает Keyevent и проверяет KeyEvent. Если сообщение содержит более 200 символов, отображается сообщение JOptionPane.showMessageDialog для отображения предупреждения пользователю. Этот бит отлично работает.
Проблема в том, что после отображения предупреждения и нажатия кнопки «ОК» он может использовать только клавишу Backspace в JTextPane. Я хочу, чтобы пользователь мог использовать клавишу удаления, клавиши со стрелками, клавиши Shift и Control для выбора текста, который нужно удалить.
Кто-нибудь может предложить способ достижения этого?
// Add Key Listener to Send Field
chatEditorKeyListener = new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
checkKeystroke(e);
}
};
private void checkKeystroke(KeyEvent e)
{
//Check if enter or back space is entered
if( e.getKeyCode() != KeyEvent.VK_BACK_SPACE && e.getKeyCode() != KeyEvent.VK_ENTER )
{
// user is typing, so test the size as we go and report when we hit boundary
String text = messageBox.getText();
if(text.length() > maxMessageSize)
{
showAlertBox();
}
}
else if ( e.getKeyCode() == KeyEvent.VK_ENTER)
{
//User sending the message
e.consume();
String text = messageBox.getText();
if(text.length() > maxMessageSize)
{
showAlertBox();
}