Swing-文本输入组件(一)

时间:2022-12-25 16:22:07

Swing控件中,能够实现用户输入的有JTextField、JPasswordField、JTextArea和JTextPane。下面分别进行介绍。

JTextField

最简单的文本控件,常见的登陆界面中就是使用得它。其文本无法换行,也不支持滚动条,文本长度超出控件宽度后在视觉上会遮挡一部分内容,因此建议提前预计文本长度,并使用textField.setColumns(int arg0)将其列数设置的稍大一点。之后,必须调用revalidate()重新计算控件大小。

基本方法:

Swing-文本输入组件(一)

Swing-文本输入组件(一)

JPasswordField

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

基本方法:

Swing-文本输入组件(一)

JTextArea

较大面积的输入区域,比如记事本、word的编辑区域。其中的内容可包含多行,每一行内容使用\n进行分割。该控件常常需要使用滚动条,然而默认是没有的,必须手动添加。

基本方法:

基本的setText()/getText()之类函数不在重复,给出下面这个:

public void setLineWrap(boolean wrap)

该方法设置为true时,允许文本宽度超过控件宽度时自动进行换行。否则超过部分将被遮挡。

JTextPane

文本组件中的高富帅。它可以容纳格式化文字、图片、任意组件及段落格式等。我们将专门使用一节来介绍它。详见《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-文本输入组件(一)

Swing-文本输入组件(一)的更多相关文章

  1. Java Swing界面编程(18)---单行文本输入组件:JTextField

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/xuejiawei123/article/details/27565407 下面的程序与上一例有一点差 ...

  2. 【Swing/文本组件】定义自动换行的文本域

    文本域组件:Swing中任何一个文本域(JTextArea)都是JTestArea类型的对象.常用的构造方法如下 public JTextArea() public JTextArea(String ...

  3. 实验十四 第九组 张燕~杨蓉庆~杨玲 Swing图形界面组件

    实验十四  Swing图形界面组件 8-11-29 理论知识 Swing和MVC设计模式 (1)设计模式(Design pattern)是设计者一种流行的 思考设计问题的方法,是一套被反复使用,多数人 ...

  4. 实验十四 Swing图形界面组件

    实验十四  Swing图形界面组件 实验时间 20178-11-29 1.实验目的与要求 (1) 掌握GUI布局管理器用法: (2) 掌握各类Java Swing组件用途及常用API: 2.实验内容和 ...

  5. JAVA学习Swing章节按钮组件JButton的简单学习

    package com.swing; import java.awt.Container; import java.awt.Dimension; import java.awt.GridLayout; ...

  6. 基于 React-draft-wysiwyg 实现的 react 富文本编辑器组件 开箱即用

    工作中遇到了一个需要做图文详情 的富文本编辑的需求, 于是基于 React-draft-wysiwyg 实现了一个 纯组件, 目前支持 常规文本输入 外部链接图片 以及本地上传图片, 由于是纯组件, ...

  7. Flutter学习笔记(21)--TextField文本框组件和Card卡片组件

    如需转载,请注明出处:Flutter学习笔记(21)--TextField文本框组件和Card卡片组件 今天来学习下TextField文本框组件和Card卡片组件. 只要是应用程序就少不了交互,基本上 ...

  8. emacs: 文本输入中文件目录自动补全

    emacs: 文本输入中文件目录自动补全 // */ // ]]> UP | HOME   emacs: 文本输入中文件目录自动补全 Table of Contents 1 引言 2 补全过程演 ...

  9. iOS,文本输入,键盘相关

    1.UIKeyboard键盘相关知识点 2.点击空白区域隐藏键盘(UIKeyboard) 3.键盘(UIKeyboard)挡住输入框处理 4.自定义键盘(UIKeyboard) 5.监听键盘弹出或消失 ...

随机推荐

  1. 卸载oracle 11g数据库软件

    卸载oracle,从11g开始使用deinstall卸载数据库软件可以干净卸掉oracle $ cd $ORACLE_HOME/deinstall $ ls -l total 152 -rwxr-xr ...

  2. temp - Linux administration handbook 答案

    我开始做第一章后的练习题,发觉不是很容易随意地回答,就像是C++ primer之后的练习题的感觉. 自己有这么多不会的,让我感觉很不爽啊- -! 先不要要求自己一下子都明了,一口吃不成胖子,先找一份工 ...

  3. Android_listView_BaseAdapter

    layout.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" x ...

  4. 【转】 各种 基于Unity3d 引擎的Android游戏优化 (drawcall)

     合并纹理,减少贴图数量,合并网格,ui上减少不必要的层级叠加关系等   1. 更新不透明贴图的压缩格式为ETC 4bit,因为android市场的手机中的GPU有多种,每家的GPU支持不同的压缩格式 ...

  5. google自定义站内搜索

    ttps://www.google.com/cse/docs/cref.html?hl=zh-cn 重要表单参数: action 字段:您希望存储结果的网址(在该例中,我们使用 http://www. ...

  6. bzoj 4547 小奇的集合

    Description 有一个大小为n的可重集S,小奇每次操作可以加入一个数a+b(a,b均属于S),求k次操作后它可获得的S的和的最大 值.(数据保证这个值为非负数) Input 第一行有两个整数n ...

  7. &lbrack;HNOI2009&rsqb;有趣的数列

    题目描述 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}: (2)所有的奇数项满足a1<a3<...<a2n ...

  8. 软件测试:1&period;Describe An Error

    软件测试:1.Describe An Error 要求: 1.简要描述你最近完成项目里的一个error: 2.说明原因,错误影响,及你怎样发现的: 或许因为刚开学的缘故,近期我并没有完成大的项目,多少 ...

  9. centos7救援模式--rescue模式

    前序 经典问题:系统无法进入,如grub损坏或某个配置文件改错 操作 1 按方向键到Boot,选到Hard Driver,按减号,使其下移,最终让CD-ROM Drive到第一行,并按F10保存 2 ...

  10. win10环境下安装Ubantu双系统(超详解)

    win10环境下安装Ubantu双系统 1.准备工作: 先去ubantu官网(https://www.ubuntu.com/download)去下载ubantu镜像.根据自己的实际情况选择32位的或者 ...