我有一個JTextPane,我想限制用戶只輸入200個字符的郵件。所以,我有一個KeyListener,它偵聽一個Keyevent並檢查一個KeyEvent。如果消息超過200個字符,則顯示JOptionPane.showMessageDialog以向用戶顯示警告。這一點工作正常。在JTextPane中限制郵件中的字符數
問題是,一旦顯示警告並且用戶點擊'OK',他就只能使用JTextPane中的Backspace鍵。我希望用戶能夠使用刪除鍵,箭頭鍵,移位鍵和控制鍵來選擇要刪除的文本。
任何人都可以提出一種方法來實現這?
// 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();
}