|
| |
精品推荐 |
 |
|
| |
|
|
|
|
Java图形用户界面设计
|
日期:2007年10月12日 作者: 查看:[大字体
中字体 小字体]
|
You clicked the RadioButton
这说明多个不用的组件添加同一个监听器是可行的——不过前提是这些组件都能添加这个监听器。 四. 文本输入框、密码输入框
文本输入框包括两种,单行文本输入框 (JTextField) 和多行文本输入框 (JTextArea)。密码输入框则只有一种 (JPasswordField)。JPasswordField 是 JTextField 的子类,它们的主要区别是 JPasswordField 不会显示出用户输入的东西,而只会显示出程序员设定的一个固定字符,比如 '*'。
下面的示例图和代码是 JTextField、JPasswordField 和 JTextArea 的示例:
/** * TestTexts.java * @author Fancy */ 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 获得或者设置文本内容 (当然在用户界面上是隐藏的)。
上一篇:Palm 串行通讯GPS数据读取的实现
下一篇:Java用户界面本地化实例探索
|
| 相关文章: |
|
|
|
| 相关软件: |
|
|
|
|