java textfield是什么,java中Label、TextField是做什么的
大家好,今天来为大家分享java textfield是什么的一些知识点,和java中Label、TextField是做什么的的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
java jtextfield
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。
Java swing里怎么获得TextField手动输入的值
1、Textfield有一个方法叫getText(),用于获取文本的值,但取到的是字符串。要取得用户输入的信息,需要有一个触发按钮,比如提交。刚开始Textfield的值是空的,当用户输入值后再点击提交按钮,getText()方法就能获取到用户输入的值。
getText()这个方法不仅 Textfield有这个方法,基本所有的组件都有这个方法取得组件里面的值。
2、TextField不需要设置就可以输入了,getText()是可以得到它的文本的,好像得不到可能是因为你没写条件,程序就运行了一次,而第一次文本框里面是没有值的,当然得不到啦
你可以
TextField txt=new TextField();
txt.setBounds(50,50,120,30);
this.getContentPane().add(txt);
while(true)
{
System.out.println(txt.getText());
}
3、你可以使用 JTextField jtf=new JTextField("操作员");
就可以用getText()获得值了。
4、是允许用户输入的,通过getText可以得到的不过转换成String显示的。
5、Double.parseDouble()转double
Integer.parseInt()转int
java中Label、TextField是做什么的
AWT组件,Label用来装载一个字符串。TextField是一个文本框。
例如你创建一个Frame类的对象,向其内添加一个TextFiled对象,那么窗口中就有了一个文件框了。Label是用来说明文件框等组件的!例如在文本框前面显示用户名三个字,你就需要使用Label来装载这个字符串。
import java.awt.*;
public class Test{
public static void main(String[] args){
Frame f= new Frame();
f.setLayout(new FlowLayout());
Label l= new Label("用户名");
TextField tf= new TextField(10);//10列
f.add(l);
f.add(tf);
f.setSize(300, 200);//窗口大小
f.show();//显示窗口
}
}
Java 中 JTextArea 和 JTextField 的有什么区别
文本输入框、密码输入框
文本输入框包括两种,单行文本输入框(JTextField)和多行文本输入框(JTextArea)。密码输入框则只有一种(JPasswordField)。JPasswordField是 JTextField的子类,它们的主要区别是 JPasswordField不会显示出用户输入的东西,而只会显示出程序员设定的一个固定字符,比如'*'。
下面的示例图和代码是 JTextField、JPasswordField和 JTextArea的示例:
import javax.swing.*;
import javax.swing.event.*;
public class TestTexts extends JFrame{
private JLabel label= new JLabel("Status");
private JTextField textField;
private JPasswordField pwdField;
private JTextArea textArea;
public TestTexts(){
super("Test Texts");
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().setLayout(new java.awt.FlowLayout());
textField= new JTextField(15);
textField.addCaretListener(new CaretListener(){
public void caretUpdate(CaretEvent e){
//如果改变了内容,就可以即时更新 label显示的内容
label.setText(textField.getText());
}
});
pwdField= new JPasswordField(15);
pwdField.setEchoChar('#');
textArea= new JTextArea(5, 15);
textArea.setLineWrap(true);
getContentPane().add(textField);
getContentPane().add(pwdField);
getContentPane().add(textArea);
getContentPane().add(label);
setSize(200, 200);
}
public static void main(String[] args){
TestTexts tt= new TestTexts();
tt.show();
}
}
上例中,我们构造了一个宽度为 15个字符的单行文本框(textField= new JTextField(15);),并使用 addCaretListener方法添加了一个 CaretListener(textField.addCaretListener...)。CaretListener监听文本光标的移动事件。当用户使用键盘、鼠标等移动了文本光标在 JTextField中的位置时触发这个事件。我们需要重载 caretUpdate(CaretEvent e)对事件进行处理(public void caretUpdate(CaretEvent e)...)。这样,我们可以在这里做类似 VB中 TextBox的 OnChange事件中做的事情。
JTextField有 5个构造方法,常用其中的四个:
JTextField()
JTextField(int columns),如上例 textField= new JTextField(15);
JTextField(String text)
JTextField(String text, int columns)
其中,参数 text是单行文本框的初始内容,而 columns指定了单行文本框的宽度,以字符为单位。JTextField中的文本内容可以用 getText()方法获得。也可以用 setText方法指定 JTextField中的文本内容。
JPasswordField是 JTextField的子类,其构造方法也是类似的。JPasswordField提供了 setEchoChar(char ch)方法设置为了隐藏密码而显示的字符,默认为'*'字符,上例中则设置为了'#'字符(pwdField.setEchoChar('#');)。与 JTextField一样,JPasswordField也用 getText方法和 setText获得或者设置文本内容(当然在用户界面上是隐藏的)。
JTextField是单行文本框,不能显示多行文本,如果想要显示多行文本,就只好使用多行文本框 JTextArea了。JTextArea有六个构造方法,常用的也是四个:
JTextArea()
JTextArea(int rows, int columns)
JTextArea(String text)
JTextArea(String text, int rows, int columns)
text为 JTextArea的初始化文本内容;rows为 JTextArea的高度,以行为单位;columns为 JTextArea的宽度,以字符为单位。如上例中就构造了一个高 5行,宽 15个字符的多行文本框(textArea= new JTextArea(5, 15);)。
多行文本框默认是不会自动折行的(不过可以输入回车符换行),我们可以使用 JTextArea的 setLineWrap方法设置是否允许自动折行。setLineWrap(true)是允许自动折行,setLineWrap(false)则是不允许自动折行。多行文本框会根据用户输入的内容自动扩展大小,不信,自己做个实验——如果不自动折行,那么多行文本框的宽度由最长的一行文字确定的;如果行数据超过了预设的行数,则多行文本框会扩展自身的高度去适应。换句话说,多行文本框不会自动产生滚动条。怎么办?后面讲到滚动窗格(JScrollPane)的时候,你就知道了。
多行文本框里文本内容的获得和设置,同样可以使用 getText和 setText两个方法来完成。
文章到此结束,如果本次分享的java textfield是什么和java中Label、TextField是做什么的的问题解决了您的问题,那么我们由衷的感到高兴!