java文本组件(JTextField、JPasswordField、JTextArea)

文本组件在实际项目开发中使用最广泛,尤其是文本框与密码框组件,通过文本组件可以很轻松地处理单行文字、多行文字、口令字段等,下面将对文本组件的定义以及使用进行讲解。

JTextField文本框组件

文本框(JTextField)用来显示或编辑一个单行文件,在Swing中通过javax.swing.JTextField类对象创建,该类继承了javax.swing.text.JTextComponent类,下面例举了一些创建文本框常用的构造方法;

  • public JTextField():构造一个没有任何初始值的文本框;
  • public JTextField(String text):构造一个用指定文本(text)初始化的文本框;
  • public JTextField(int fieldwidth):构造一个具有指定列数(fieldwidth)的文本框;
  • public JTextField(String text,int fieldwidth):构造一个用指定文本(text)和列(fieldwidth)初始化的文本框;
  • public JTextField(Document docModel,String text,int fieldwidth):构造一个用给定文本(text)、存储模型(docModel)和给定的列数(fieldwidth)的文本框;

从上述构造方法可以看出,定义JTextField组件很简单,可以通过在初始化文本框时设置文本框的默认文字、文本框的长度等方式在实现。

下面看一个清除文本框中的文本内容,代码如下:


import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class Demo extends JFrame {
	public Demo() {
		Container c = getContentPane();					// 获取窗体容器
		c.setLayout(new FlowLayout());
		JTextField jt = new JTextField("aaa");			// 设定文本框初始值
		jt.setColumns(20);//设置文本框长度
		jt.setFont(new Font("宋体", Font.PLAIN, 20));	// 设置字体
		JButton jb = new JButton("清除");
		jt.addActionListener(new ActionListener() {		// 为文本框添加回车事件
			public void actionPerformed(ActionEvent arg0) {
				jt.setText("触发事件");					// 设置文本框中的值
			}
		});
		jb.addActionListener(new ActionListener() {		// 为按钮添加事件
			public void actionPerformed(ActionEvent arg0) {
				System.out.println(jt.getText());		// 输出当前文本框的值
				jt.setText("");							// 将文本框置空
				jt.requestFocus();						// 焦点回到文本框
			}
		});
		c.add(jt);										// 窗体容器添加文本框
		c.add(jb);										// 窗体添加按钮
		setBounds(100, 100, 250, 110);
		setVisible(true);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
	}
	public static void main(String[] args) {
		new Demo();
	}
}

返回结果:

本实例的窗体中主要设置一个文本框和一个按钮,然后分别为文本框和按钮设置事件,当用户将光标焦点落于文本框中并按下<Enter>建时,文本框将执行actionPerformed()方法中的相关操作,同时为按钮添加相应的事件,当用户单击清除按钮时,文本框中的字符串将被清除

JPassword密码框事件

密码框(JPasswordField)与文本框的定义与用法基本相同,唯一不同的是密码框将用户输入的字符串以某种符号进行加密。密码框对象时通过javax.swing.JPasswordField类来创建,JPasswordField类构造方法与JTextField类的构造方法非常相似,可以参考上面的JTextField类的构造方法。

在JPasswordField类中提供一个setEchoChar()方法,可以改变密码框的回显示字符,语法如下:

JPasswordField jp = new JPasswordField();
//设置回显字符
jp.setEchoChar('#');

想要获取JPasswordField中输入的值,可以使用如下方法:

JPasswordField jp = new JPasswordField();
//获取密码字符数组
char ch[] = jp.getPassword();
//将字符数组转为为字符串
String pwd = new String(ch);

 下面讲解JPasswordField组件用法,代码如下:

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Demo extends JFrame {
	public Demo() {
		//创建容器
		Container ct = getContentPane();
		//使用流布局管理器
		ct.setLayout(new FlowLayout());
		//创建JPasswordField对象
		JPasswordField jp = new JPasswordField();
		//设置回显字符
		jp.setEchoChar('#');
		//密码的长度
		jp.setColumns(10);
		//设置事件器
		jp.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				//获取密码字符数组
				char ch[] = jp.getPassword();
				//将字符数组转为为字符串
				String pwd = new String(ch);
				System.out.println(pwd);
			}
		});
		//将组件加入容器
		ct.add(jp);
		setBounds(200, 200, 200, 100);
		setVisible(true);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
				
	}
	public static void main(String[] args) {
		new Demo();
	}
}

返回结果:

JTextArea文本域组件

JTextArea表示文本域组件,它可以在程序中接受用户输入的多行文字,Swing中任何一个文本区域都是JTextArea类型的对象,JTextArea常用的构造方法如下:

  • public JTextArea():构造JTextArea类的对象;
  • public JTextArea(String text):构造显示指定文本(text)的JTextArea类的对象;
  • public JTextArea(int rows,int columns):构造具有指定行数(rows)和列数(columns)的空JTextArea类的对象;
  • public JTextArea(Document  doc):构造JTextArea对象,使其具有给定的文档模型(doc),所有其他参数均默认为(null,0,0);
  • public JTextArea(Document  doc,String text,int rows,int columns):构造具有指定行数(rows)和列数(columns)以及给定模型(doc)的JTextArea类的对象;

JTextArea类中存在一个setLineWarp(Boolean wrap)方法,该方法用于设置文本域是否可以自动换行,如果该方法的参数设置为true,文本域将自动换行,否则不自动换行。

JTextArea类中还有一个常用的append(String str)方法,该方法用来为文本域添加文本(str)

下面通过一个实例来演示JTextArea文本域组件的使用,代码如下:


import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;

public class Demo extends JFrame{
	public Demo(){
		setSize(200,100);
		setTitle("定义自动换行的文本域");
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		Container cp=getContentPane();				// 获取窗体容器
		JTextArea jt=new JTextArea("文本域",6,6); 	// 创建6行6列默认值为“文本域”的文本域组件
		jt.setLineWrap(true);					    //可以自动换行
		cp.add(jt);
		setVisible(true);
	}
	public static void main(String[] args) {
		new Demo();
	}
}

返回结果:

 

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值