當前位置:科普知識站>IT科技>

java|jtextfield

IT科技 閲讀(1.54W)

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java jtextfield是什麼,讓我們一起了解一下?

JTextField類的對象是一個文本組件,允許編輯單行文本,繼承了JTextComponent類,JTextField與java.awt.TextField具有源代碼兼容性,把字段文本用作針對ActionEvent的命令字符串。

JTextField中,我們需要設置它的輸入長度,但是JAVA中沒有給出具體的方法,怎麼辦?

對於JTextField的對象,給它增加一個事件監聽,每當從鍵盤敲入一個字符時,就對它的長度進行判斷,如果長度達到某一條件,則無法繼續輸入(通過consume方法實現)。

public void keyTyped(KeyEvent e) {// TODO Auto-generated method stubString s = textField.getText();if(s.length() >= 8) e.consume();}

先來介紹一下這個consume方法,該方法是用來銷燬實例的。在上述代碼中,當s的長度大於等於8時,就銷燬多出來的字符了,從而達到了限制輸入長度的效果。

java jtextfield

當按下一個按鍵時,首先調用的是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。