java jtextfield是什么,讓我們一起了解一下?
JTextField類的對象是一個文本組件,允許編輯單行文本,繼承了JTextComponent類,JTextField與java.awt.TextField具有源代碼兼容性,把字段文本用作針對ActionEvent的命令字符串。
JTextField中,我們需要設置它的輸入長度,但是JAVA中沒有給出具體的方法,怎么辦?
對于JTextField的對象,給它增加一個事件監聽,每當從鍵盤敲入一個字符時,就對它的長度進行判斷,如果長度達到某一條件,則無法繼續輸入(通過consume方法實現)。
public?void?keyTyped(KeyEvent?e)?{ //?TODO?Auto-generated?method?stub String?s?=?textField.getText(); if(s.length()?>=?8)?e.consume(); }
先來介紹一下這個consume方法,該方法是用來銷毀實例的。在上述代碼中,當s的長度大于等于8時,就銷毀多出來的字符了,從而達到了限制輸入長度的效果。
當按下一個按鍵時,首先調用的是keyPressed方法,然后再將鍵入的字符顯示到JTextField文本框中,最后再調用keyReleased方法。
也就是說,如果我在keyPressed中調用consume方法,它就無法做到限制字符輸入長度的效果,因為文本框中的字符是在我進行完keyPressed方法后顯示的。
同樣的,為什么在keyRelease中也不行呢?因為在調用keyPressed后,字符就立刻顯示到了文本框中,但是此時還沒有調用keyReleased方法,所以同樣達不到通過consume方法來限制輸入長度的效果。
拓展一下,它的構造方法如下:
描述JTextField()
創建一個新的TextField:JTextField(String text)
創建一個使用指定文本初始化的新TextField:JTextField(String text, int columns)
創建一個新的TextField,并使用指定的文本和列進行初始化。
JTextField(int columns)用指定的列數創建一個新的空TextField。
以上就是小編今天的分享了,希望可以幫助到大家。