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.监听键盘弹出或消失 ...
随机推荐
- akoj-1055-矩阵乘法
矩阵乘法 Time Limit:1000MS Memory Limit:65536K Total Submit:19 Accepted:7 Description 矩阵乘法是线性代数中最基本的运算之 ...
- jvm参数解析(含调优过程)
前阵 对底层账单系统进行了压测调优,调优的最后一步--jvm启动参数中,减小了线程的堆栈空间:-XX:ThreadStackSize=256K,缩减至原来的四分之一,效果明显,不过并没有调 ...
- MySQL学习进阶
存储引擎 MyISAMMySQL 5.0 之前的默认数据库引擎,最为常用.拥有较高的插入,查询速度,但不支持事务 InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5. ...
- Lucene搜索引擎+HDFS+MR完成垂直搜索
介于上一篇的java实现网络爬虫基础之上,这一篇的思想是将网络收集的数据保存到HDFS和数据库(Mysql)中:然后用MR对HDFS的数据进行索引处理,处理成倒排索引:搜索时先用HDFS建立好的索引来 ...
- JDK问题--linux下java unrecognized class file version错误的解决
linux下java unrecognized class file version错误的解决 环境:RedHat Linux Enterprise 5.4 问题:java.sun.com下载jdk1 ...
- 利用CSS简单布局的不同组合类型
关于CSS布局页面的简单组合方式: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- Spark Streaming 调优指南
SparkStreaming是架构在SparkCore上的一个"应用",SparkStreaming主要由DStreamGraph.Job的生成.数据的接收和导入以及容错四大模块组 ...
- 分享:SringBuffer与String的区别
·作为Java中最为基础的部分,在Java的学习过程中,就一定会学习到字符串,其中String类作为字符串.并且在Java所有的程序中是使用字符串都是使用String类去实现. 两者存在一定的通性,都 ...
- php Yii2使用registerJs或registerCss报错syntax error, unexpected end of file
解决方法: 注册时$js=<<<JS .....JS;//结尾处JS;应单独成行并且没有空格 JS;//这样就会报错,多了空格JS;//这样就不会
- Centos 6.5 安装 python3.6.2、pip9.0.1、ipython6.1
说明:由于Cenots 6.5 默认是安装的 python 2.6.6 要想同一台主机使用多个python版本,不能影响原来的版本,因为系统很多还依赖于python,比如 yum python ...