Swing-文本输入组件(一)
Swing控件中,能够实现用户输入的有JTextField、JPasswordField、JTextArea和JTextPane。下面分别进行介绍。
JTextField
最简单的文本控件,常见的登陆界面中就是使用得它。其文本无法换行,也不支持滚动条,文本长度超出控件宽度后在视觉上会遮挡一部分内容,因此建议提前预计文本长度,并使用textField.setColumns(int arg0)将其列数设置的稍大一点。之后,必须调用revalidate()重新计算控件大小。
基本方法:


JPasswordField
性质与JTextField基本相同,区别在于输入内容非明文。可使用setEchoChar(char arg0)设置回显字符,默认为星号。
基本方法:

JTextArea
较大面积的输入区域,比如记事本、word的编辑区域。其中的内容可包含多行,每一行内容使用\n进行分割。该控件常常需要使用滚动条,然而默认是没有的,必须手动添加。
基本方法:
基本的setText()/getText()之类函数不在重复,给出下面这个:
public void setLineWrap(boolean wrap)
该方法设置为true时,允许文本宽度超过控件宽度时自动进行换行。否则超过部分将被遮挡。
文本组件中的高富帅。它可以容纳格式化文字、图片、任意组件及段落格式等。我们将专门使用一节来介绍它。详见《Swing-文本输入组件(二)》
示例代码:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingConstants; /*
* source code from 《java核心技术 卷1 基础知识》 P323
*/
public class TextComponentFrame extends JFrame { int DEFAULT_WIDTH = 600;
int DEFAULT_HEIGHT = 400; public TextComponentFrame() {
setTitle("TextComponentFrame");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); //本frame包含三大板块
JPanel northPanel = new JPanel();
JScrollPane scrollPane = null;
JPanel southPanel = new JPanel();
add(northPanel, BorderLayout.NORTH);
add(southPanel, BorderLayout.SOUTH); //先来构造northPanel,它包含两个控件
final JTextField textField = new JTextField();
final JPasswordField passwordField = new JPasswordField(); northPanel.setLayout(new GridLayout(2, 2));
northPanel.add(new JLabel("UserName:", SwingConstants.RIGHT));//靠右对齐
northPanel.add(textField);
northPanel.add(new JLabel("Password:", SwingConstants.RIGHT));//靠右对齐
northPanel.add(passwordField); //再来构造中间板块,它包含一个textArea
final JTextArea textArea = new JTextArea();
scrollPane = new JScrollPane(textArea);
add(scrollPane, BorderLayout.CENTER);//添加到窗体 //构造southPanel,它包含一个button
southPanel.setLayout(new GridLayout(2, 2));
JButton insertButton = new JButton("insertButton");
insertButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
textArea.append("UserName: " + textField.getText() + "\n"
+ "Password:" + new String(passwordField.getPassword())
+ "\n");
}
});
southPanel.add(insertButton);
} public static void main(String[] args) {
//创建窗体并指定标题
TextComponentFrame frame = new TextComponentFrame();
//关闭窗体后退出程序
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//自动适配所有控件大小
//frame.pack();
//设置窗体位置在屏幕中央
frame.setLocationRelativeTo(null);
//显示窗体
frame.setVisible(true);
}
}
运行效果:

Swing-文本输入组件(一)的更多相关文章
- Java Swing界面编程(18)---单行文本输入组件:JTextField
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/xuejiawei123/article/details/27565407 下面的程序与上一例有一点差 ...
- 【Swing/文本组件】定义自动换行的文本域
文本域组件:Swing中任何一个文本域(JTextArea)都是JTestArea类型的对象.常用的构造方法如下 public JTextArea() public JTextArea(String ...
- 实验十四 第九组 张燕~杨蓉庆~杨玲 Swing图形界面组件
实验十四 Swing图形界面组件 8-11-29 理论知识 Swing和MVC设计模式 (1)设计模式(Design pattern)是设计者一种流行的 思考设计问题的方法,是一套被反复使用,多数人 ...
- 实验十四 Swing图形界面组件
实验十四 Swing图形界面组件 实验时间 20178-11-29 1.实验目的与要求 (1) 掌握GUI布局管理器用法: (2) 掌握各类Java Swing组件用途及常用API: 2.实验内容和 ...
- JAVA学习Swing章节按钮组件JButton的简单学习
package com.swing; import java.awt.Container; import java.awt.Dimension; import java.awt.GridLayout; ...
- 基于 React-draft-wysiwyg 实现的 react 富文本编辑器组件 开箱即用
工作中遇到了一个需要做图文详情 的富文本编辑的需求, 于是基于 React-draft-wysiwyg 实现了一个 纯组件, 目前支持 常规文本输入 外部链接图片 以及本地上传图片, 由于是纯组件, ...
- Flutter学习笔记(21)--TextField文本框组件和Card卡片组件
如需转载,请注明出处:Flutter学习笔记(21)--TextField文本框组件和Card卡片组件 今天来学习下TextField文本框组件和Card卡片组件. 只要是应用程序就少不了交互,基本上 ...
- emacs: 文本输入中文件目录自动补全
emacs: 文本输入中文件目录自动补全 // */ // ]]> UP | HOME emacs: 文本输入中文件目录自动补全 Table of Contents 1 引言 2 补全过程演 ...
- iOS,文本输入,键盘相关
1.UIKeyboard键盘相关知识点 2.点击空白区域隐藏键盘(UIKeyboard) 3.键盘(UIKeyboard)挡住输入框处理 4.自定义键盘(UIKeyboard) 5.监听键盘弹出或消失 ...
随机推荐
- 链接样式L-O-H-A
伪类可以链接起来使用,即不用在乎顺序 :link{color:blue;} :visited{color:purple;} :link:hover{color:red;} :visited:hover ...
- 整理pandas操作
本文原创,转载请标识出处: http://www.cnblogs.com/xiaoxuebiye/p/7223774.html 导入数据: pd.read_csv(filename):从CSV文件导入 ...
- Python 函数装饰器和闭包
装饰器基础知识 装饰器是可调用的对象,其参数是另一个函数(被装饰的函数). 装饰器可能会处理被装饰的函数,然后把它返回,或者将其替换成另一个函数或可调用对象. p.p1 { margin: 0.0px ...
- canvas图形处理和进阶用法
前面的话 上一篇博客介绍了canvas基础用法,本文将更进一步,介绍canvas的图形处理和进阶用法 图形变换 图形变换是指用数学方法调整所绘形状的物理属性,其实质是坐标变形.所有的变换都依赖于后台的 ...
- datagrid实现行的上移和下移(转)
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- 【Linux】MySQL解压版安装及允许远程访问
安装环境/工具 1.Linux( centOS 版) 2.mysql-5.6.31-linux-glibc2.5-x86_64.tar 安装步骤 1.下载mysql解压版(mysql-5.6.31-l ...
- PowerShell 脚本执行策略
为防止恶意脚本的执行,PowerShell 中设计了一个叫做执行策略(Execution Policy)的东西(我更倾向于把它叫做脚本执行策略).我们可以在不同的应用场景中设置不同的策略来防止恶意脚本 ...
- 【渗透课程】第三篇-体验http协议的应用
之前我们都了解了,访问网页时,客户端与服务端之间的请求与响应数据交互.本篇就浅谈它的应用. 利用HTTP拦截突破前段验证 比方说,我们在某个网页提交某些数据(例如留言.上传.插入xss等),发生错误( ...
- 我的前端故事----我为什么用GraphQL
背景 今年我在做一个有关商户的app,这是一个包含商户从入网到审核.从驳回提交到入网维护的完整的生命周期线下推广人员使用的客户端软件,但故事并没有这么简单... 疑问 随着app的逐渐完善,遇到的问题 ...
- 读redux有感: redux原来是这样操作的。
2017.9.10日 教师节 : ~当一个事物你没有接触,但是生活中 常常用到他,你就不得不去了解他了. 注:新手可以看一下,毕竟博主也是个菜鸟,没法写高深的东西,不想看博主扯淡的直接看第三节啦~~ ...