当前位置:科普知识站>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。