Java Swing提供了两种常用的文本输入方式,分别是文本框(JTextField)与文本区(JTextArea),这两种方法有相似点也有不同点,在此具体分析,做个笔记。
一、JTextField
常用的构造方法有:
JTextField() 构造一个新的 TextField。
JTextField(int columns) 构造一个具有指定列数的新的空 TextField。
JTextField(String text) 构造一个用指定文本初始化的新TextField。
JTextField(String text, int columns) 构造一个用指定文本和列初始化的新TextField。
常用的成员方法有;
SetText(string) 设置文本域中的文本值
GetText()返回文本域中的输入文本值
getColumns()返回文本域的列数
如果遇到只能在文本框输入自己想控制的格式,如:只能输入数字,字母等需求,有两种实现方法,一种是在用户提交时判断输入的内容是否符合要求,二种是在用户输入的同时对内容做判断。比如在输入时只允许用户输入数字,代码如下:
public class VoteElectKeyListener implements KeyListener {
public void keyTyped(KeyEvent e) {
int keyChar=e.getKeyChar();
if (keyChar>=KeyEvent.VK_0 && keyChar<=KeyEvent.VK_9) {
} else {
e.consume();
}
}
JTextField 有一个特殊的子类——JPasswordField ,它们的主要区别是 JPasswordField 不会显示出用户输入的东西,而只会显示出程序员设定的一个固定字符,比如 ‘*’。这常常被用于密码输入框。
二、JTextArea
常用的构造方法有:
JTextArea() 构造新的 TextArea。
JTextArea(String text) 构造显示指定文本的新的 TextArea。
JTextArea(int rows, int columns) 构造具有指定行数和列数的新的空 TextArea。
JTextArea(String text, int rows, int columns) 构造具有指定文本、行数和列数的新的 TextArea。
常用的成员方法有:
void append(String str)
将给定文本追加到文档结尾。
void SetText(string) 设置文本域中的文本值
String GetText()返回文本域中的输入文本值
protected Document createDefaultModel()
int getColumns()
返回 TextArea 中的列数。
int getRows()
返回 TextArea 中的行数。
在使用时,有两个地方比较不人性化,第一是如果采用默认方式,输入的文本将集中在一行,第二就是如果太长的文本,默认没有提供滚动条。但是可以使用成员方法实现,如下所示:
JTextArea text;
text = new JTextArea("hello", 20, 43);
text.setLineWrap(true); //激活自动换行功能
text.setWrapStyleWord(true); // 激活断行不断字功能
JTextArea text;
JPanel panel1;
panel1= new JPanel();
panel1.add(new JScrollPane(text));//加入滚动条