文本输入框包括两种,单行文本输入框(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 voidcaretUpdate(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 = newJTextArea(5, 15);)。   多行文本框默认是不会自动折行的 (不过可以输入回车符换行),我们可以使用JTextArea 的 setLineWrap 方法设置是否允许自动折行。setLineWrap(true)是允许自动折行,setLineWrap(false)则是不允许自动折行。多行文本框会根据用户输入的内容自动扩展大小,不信,自己做个实验——如果不自动折行,那么多行文本框的宽度由最长的一行文字确定的;如果行数据超过了预设的行数,则多行文本框会扩展自身的高度去适应。换句话说,多行文本框不会自动产生滚动条。怎么办?后面讲到滚动窗格(JScrollPane) 的时候,你就知道了。   多行文本框里文本内容的获得和设置,同样可以使用 getText 和 setText 两个方法来完成。

java jtextfield 密码_java中的文本输入框JTextField与JTextArea、密码输入框相关推荐

  1. java jtextfield 密码_Java Swing实战(三)文本组件JTextField和密码组件JPasswordField

    接下来添加文本组件JTextField和密码组件JPasswordField. /** * @author: lishuai * @date: 2018/11/26 13:51 */ public c ...

  2. selenium java 验证码_如何使用Selenium WebDriver和Java从图像(验证码)中读取文本

    我有注册网页,但在最后验证码显示.. 我无法从图像中读取文本.我要提一下代码和输出.. @Test public void loginTest() throws InterruptedExceptio ...

  3. java 数据类型分为_JAVA中分为基本数据类型及引用数据类型

    byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值 ...

  4. Java 读取Word表格中的文本和图片

    本文通过Java程序来展示如何读取Word表格,包括读取表格中的文本和图片.下面是具体实现的步骤和方法. 1. 程序环境准备 代码编译工具:IntelliJ IDEA Jdk版本:1.8.0 测试文档 ...

  5. java post流_java中的post是什么意思

    在许多应用程序中使用GET都没有问题.但是,GET要求通过一个环境变量将自己的数据传递给CGI程序.但假如GET字串过长,有些web服务器可能用光自己的环境空间(若字串长度超过200字符,就应开始关心 ...

  6. java jtextfield清空_java – 当鼠标点击JTextField时如何清除JTextField

    当鼠标点击该文本字段时,我需要使该程序从文本字段中清除文本.我已经尝试了一些事情,但是他们都没有为我工作. 以下是代码全部: public class TimerClassPanel extends ...

  7. java jceks 密钥_Java中不同类型的密钥库(Keystore) – 概述

    阅读: 877 密钥库是用于存储加密密钥和证书的存储工具 ,最常用于SSL通信,以证明服务器和客户端的身份.密钥库可以是文件或硬件设备.有三种类型的条目可以存储在密钥库中,取决于密钥库的类型,这三种类 ...

  8. Java 读取Word批注中的文本和图片

    本文将介绍读取Word批注的方法,包括读取Word批注中的文本及图片.下面将通过Java代码来演示如何读取批注. **工具使用:**Word类库(Free Spire.Doc for Java 免费版 ...

  9. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

最新文章

  1. ubuntu mysql 改密码_tpcc-mysql 压力测试
  2. 中兴高达和中兴啥关系_打通信息孤岛!中兴高达一体化通信指挥平台
  3. 巨人也能身手敏捷?看美国KeyBank的实战经验
  4. rsa python实现_RSA算法python实现
  5. mysql高可靠部署_可能是我见过最好的 MySQL 高可用解决方案 MySQL InnoDB Cluster 中文教程!...
  6. [react] React必须使用JSX吗?
  7. 泛型使用思想,记一次java泛型使用经历
  8. windows10系统电脑点击睡眠没反应怎么办?
  9. V5-SP6:iocomp-32/iocomp-64-crack-免安装
  10. DIY一个正弦表计算器,用于单片机查表生成正弦波
  11. python字典题_Python字典练习题
  12. 谷歌大牛Jeff Dean亲自撰文:深度学习研究的黄金十年
  13. Tilera發表100核心處理器
  14. 关于『HTML』:第三弹
  15. 微信小程序的选择收货地址、新增地址、地址管理等模块的总结(1)
  16. L1-058 6翻了 (15 分)
  17. 4.决策树的探赜索隐
  18. like not like
  19. jq ajax xhrfields,为什么jQuery的.ajax()方法不发送会话cookie?
  20. 全国超级计算机排名500强每年发布几次,全球超级计算机500强榜单发布,中国排第几?...

热门文章

  1. bat 执行带中文路径的解决方法 附加pc微信双开bat
  2. Computer Vision: A Modern Approach - 计算机视觉书籍阅读笔记 -第十一章 - 跟踪
  3. Nios ii 实战篇--- DDR2
  4. 40个精美绝伦的国外网站设计作品范例
  5. STM32单片机移植SD卡FATFS文件系统
  6. 软件测试工程_绪论笔记
  7. 开关电源方案550w高效率LLC电源图纸
  8. winbox软路由安装和命令
  9. Winbox 基本介绍
  10. 树莓派系统安装资源和步骤说明