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。
以上就是小编今天的分享了,希望可以帮助到大家。