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