11.3文本输入
允许用户输入和编辑文本的组件,可以使用文本域(JTextFiled),或者可以使用==文本区(JTextArea)==组件输入文本,
文本域只能接收单行文本
文本区能够接受多行文本
JPasswordField也只能接收单行文本的输入,但不会将输入的内容显示出来
这三个类都继承于JTextComponent类。JTextComponen是一个抽象类。
常用方法表:
方法名 | 方法作用 |
---|---|
String getText() | 获得文本组件的文本 |
void setText(String text) | 设置文本组件的文本 |
Booleam isEditable() | 返回是否可以编辑这个文本组建的内容 |
void setEditable | 设置editable特性,决定用户是否可以编辑这个文本内容 |
11.3.1 文本域
把文本域添加到窗口的常用方法就是把它添加到一个面板或者其他的容器中,这与添加按钮完全一样。
var panel=new JPanel();
var textField=new JTextField("Default input",20);
panel.add(textField);
这段代码将添加一个文本域,初始化时在其中放入字符串"Default input"。构造器的第二个参数是这个文本域的宽度。一列就是指当前使用的字体一个字符的宽度,如果希望文本域最多能够输入n个字符就要设置为n列
如果需要在运行时重新设置列数就可以使用setColumns方法
使用setColumns方法改变一个文本框的大小之后,需要调用外围容器的revalidate方法。
textFiele.setColumns(10);
panel.revalidate()