2010-08-20 212 views
0

我有一個jFormattedTextFiled字段「名稱」。 我必須限制字段只輸入25個字符。 如果輸入更多消息必須顯示... 消息我可以使用JOptionpane ..如何限制jFormattedTextField

我該怎麼辦?

回答

2

使用KeyStrokeListener將是一個壞主意,因爲即使按下不可寫的按鍵(如SHIFT,排列等)時它也會觸發事件。

通過使用使用格式的構造函數,您可以首先確保只顯示和輸入25個第一個字符(例如使用MaskFormatter,如Java Tutorial中所述)。

+1

我走錯了路。這是格式文本字段的工作原理。 – 2010-08-20 08:53:52

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 2010-08-20 15:02:59

1

使用的JFormattedTextField不會讓你顯示一個一個的JOptionPane消息,因爲當您嘗試輸入多餘字符時,您會聽到嘟嘟聲。但是,這可能是更常見的方法,而不是每次都顯示一個彈出窗口。

但是,如果你真的想要一個彈出窗口,那麼你需要使用一個DocumentFilter。 Swing教程Implementing a Document Filter中的部分給出了一個你想做什麼的例子。您只需更換「嘟嘟聲」代碼即可顯示彈出窗口。