在图形界面中,文本框和文本区是用于信息输入输出的组件。

文本框

文本框(JTextField)是界面中用于输入和输出一行文本的框。JTextField类用来建立文本框。与文本框相关的接口是ActionListener。

文本框处理程序的基本内容有以下几个方面:

  1. 声明一个文本框名。
  2. 建立一个文本框对象。
  3. 将文本框对象加入到某个容器。
  4. 对需要控制的文本框对象注册监视器,监听文本框的输入结束(即输入回车键)事件。
  5. 一个处理文本框事件的方法,完成对截获事件进行判断和处理。

JTextField类的主要构造方法:

  1. JTextField(),文本框的字符长度为1。
  2. JTextField(int columns),文本框初始值为空字符串,文本框的字符长度设为columns.
  3. JTextField(String text),文本框初始值为text的字符串。
  4. JTextField(String text,int columns);文本框初始值为text,文本框的字符长度为columns。

JTextField类的其他方法:

  1. setFont(Font f),设置字体
  2. setText(String text),在文本框中设置文本
  3. getText(),获取文本框中的文本。
  4. setEditable(boolean),指定文本框的可编辑性,默认为true,可编辑。
  5. setHorizontalAlignment(int alignment)设置文本对齐方式。对齐方式有:JTextField.LEFT, JTextField.CENTER, JTextField.RIGHT。
  6. requestFocus(),设置焦点。
  7. addActionListener(ActionListener ),为文本框设置动作监视器,指定ActionListener对象接收该文本框上发生的输入结束动作事件。
  8. removeActionListener(ActionListener)移去文本框监视器。
  9. getColumns(),返回文本框的列数。
  10. getMinimumSize(),返回文本框所需的最小尺寸。
  11. getMinimumSize(int), 返回文本框在指定的字符数情况下,所需的最小尺寸。
  12. getPreferredSize(),返回文本框希望具有的尺寸。
  13. getPreferredSize(int),返回文本框在指定字符数情况下,希望具有的尺寸。

【例 11-8】小应用程序有两个文本框。一个文本用于输入一个整数,另一个文本框显示这个整数的平方值。程序用字符串转基本类型的方法Long.parseLong(text1.getText()),读取文本框text1中的字符串,并将它转换成整数。程序用Sqr类的实例作为监视器,但为了让监视器能访问主类的变量,主类中的变量被声明为类变量,并且不设置访问权限。

 import java.applet.*;import javax.swing.*;import java.awt.event.*;
public class J508 extends Applet{
static JTextField text1,text2;
Sqr s=new Sqr();//创建监视器
public void init(){
text1=new JTextField(10);
text2=new JTextField(10);
add(text1);
add(text2);
text1.addActionListener(s);//类Sqr的实例s作为text1的监视器
}
}
class Sqr implements ActionListener{
public void actionPerformed(ActionEvent e){//实现接口ActionListener
if(e.getSource()==J508.text1){
long n=Long.parseLong(J508.text1.getText());
//将text1的文本转换成long型数据
J508.text2.setText(String.valueOf(n*n));
//将n*n转化为字符串
}
else{}
}
}

密码框(JPasswordField)是一个单行的输入组件,与JTextField基本类似。密码框多一个屏蔽功能,就是在输入时,都会以一个别的指定的字符(一般是*字符)输出。除了前面介绍的文本框的方法外,另有一些密码框常用的方法:

  1. getEchoChar(),返回密码的回显字符。
  2. setEchoChar(char),设置密码框的回显字符。

文本区

文本区(JTextArea)是窗体中一个放置文本的区域。文本区与文本框的主要区别是文本区可存放多行文本。javax.swing包中的JTextArea类用来建立文本区。JTextArea组件没有事件。

文本区处理程序的基本内容有以下几个方面:

  1. 声明一个文本区名。
  2. 建立一个文本区对象。
  3. 将文本区对象加入到某个容器。

JTextArea类的主要构造方法:

  1. JTextArea(),以默认的列数和行数,创建一个文本区对象。
  2. JTextArea(String s),以s为初始值,创建一个文本区对象。
  3. JTextArea(Strings ,int x,int y),以s为初始值,行数为x,列数为y,创建一个文本区对象。
  4. JTextArea(int x,int y)以行数为x,以列数为y,创建一个文本区对象。

JTextArea类的其他常用方法:

  1. setText(String s),设置显示文本,同时清除原有文本。
  2. getText(),获取文本区的文本。
  3. insert(String s,int x),在指定的位置插入指定的文本。
  4. replace(String s,int x,int y),用给定的一替换从x位置开始到y位置结束的文本。
  5. append(String s),在文本区追加文本。
  6. getCarePosition(),获取文本区中活动光标的位置。
  7. setCarePosition(int n),设置活动光标的位置。
  8. setLineWrap(boolean b),设置自动换行,缺省情况,不自动换行。

以下代码创建一个文本区,并设置能自动换行。
    JTextArea textA = new JTextArea(“我是一个文本区”,10,15);
    textA.setLineWrap(true);//设置自动换行
当文本区中的内容较多,不能在文本区全部显示时,可给文本区配上滚动条。给文本区设置滚动条可用以下代码:

     JTextArea ta = new JTextArea();
JScrollPane jsp = new JScrollPane(ta);//给文本区添加滚动条

系列文章:

Java知多少(85)文本框和文本区的更多相关文章

  1. Java知多少(86)文本框和文本区的输入输出

    在GUI中,常用文本框和文本区实现数据的输入和输出.如果采用文本区输入,通常另设一个数据输入完成按钮.当数据输入结束时,点击这个按钮.事件处理程序利用getText()方法从文本区中读取字符串信息.对 ...

  2. 十. 图形界面(GUI)设计7.文本框和文本区的输入输出

    在GUI中,常用文本框和文本区实现数据的输入和输出.如果采用文本区输入,通常另设一个数据输入完成按钮.当数据输入结束时,点击这个按钮.事件处理程序利用getText()方法从文本区中读取字符串信息.对 ...

  3. 十. 图形界面(GUI)设计6.文本框和文本区

    在图形界面中,文本框和文本区是用于信息输入输出的组件. 文本框 文本框(JTextField)是界面中用于输入和输出一行文本的框.JTextField类用来建立文本框.与文本框相关的接口是Action ...

  4. Java知多少(87)选择框和单选按钮(转)

    选择框.单选框和单选按钮都是选择组件,选择组件有两种状态,一种是选中(on),另一种是未选中(off),它们提供一种简单的 “on/off”选择功能,让用户在一组选择项目中作选择. 选择框 选择框(J ...

  5. Java知多少(87)选择框和单选按钮

    选择框.单选框和单选按钮都是选择组件,选择组件有两种状态,一种是选中(on),另一种是未选中(off),它们提供一种简单的 “on/off”选择功能,让用户在一组选择项目中作选择. 选择框 选择框(J ...

  6. Java知多少(88)列表和组合框

    列表和组合框是又一类供用户选择的界面组件,用于在一组选择项目选择,组合框还可以输入新的选择. 列表 列表(JList)在界面中表现为列表框,是JList类或它的子类的对象.程序可以在列表框中加入多个文 ...

  7. Java知多少(89)列表和组合框

    有两种类型的菜单:下拉式菜单和弹出式菜单.本章只讨论下拉式菜单编程方法.菜单与JComboBox和JCheckBox不同,它们在界面中是一直可见的.菜单与JComboBox的相同之处是每次只可选择一个 ...

  8. Java知多少(完结篇)

    Java知多少(1)语言概述 Java知多少(2)虚拟机(JVM)以及跨平台原理 Java知多少(3) 就业方向 Java知多少(4)J2SE.J2EE.J2ME的区别 Java知多少(5) Java ...

  9. Java知多少(下)

    Java知多少(78)Java向量(Vector)及其应用 Java知多少(79)哈希表及其应用 Java知多少(80)图形界面设计基础 Java知多少(81)框架窗口基础 Java知多少(82)标签 ...

随机推荐

  1. android studio git 将项目分享到github,推送到其他平台 码云 等。

    android studio git 将项目分享到github,推送到其他平台 码云 等. 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E- ...

  2. 洛谷P1432 倒水问题(CODEVS.1226)

    To 洛谷.1432 倒水问题 题目背景 In the movie "Die Hard 3", Bruce Willis and Samuel L. Jackson were co ...

  3. asp.net c#并行调用service层代码

    public ActionResult Home(AdviserSearchModel model) { //顾问列表需要的当前城市的下级地区 var ip = "117.82.196.19 ...

  4. jdk 10.0.2 bug修复

    之前记录过jdk9+版本的1个bug,某些情况下会导致方法执行二遍,今天早上打开笔记本(mac),弹出一个框提示jdk升级10.0.2,顺手点了一下,然后验证了下该bug,发现居然fix掉了,推荐大家 ...

  5. AngularJS中使用$http对MongoLab数据表进行增删改查

    本篇体验使用AngularJS中的$http对MongoLab数据表进行增删改查. 主页面: <button ng-click="loadCourse()">Load ...

  6. 在远程桌面服务中配置RD网关直接访问内网

    原文地址:http://wangchunhai.blog.51cto.com/225186/1139388/ 远程桌面网关(RD 网关)是一项角色服务,使授权远程用户可以从任何连接到 Internet ...

  7. llvm Array Bounds Check Elimination

    http://www.knosof.co.uk/vulnerabilities/arraybnd.html http://www.cs.utsa.edu/dmz/techrep/2010/CS-TR- ...

  8. 使用 bibtex4word 实现在 office word 中管理并插入参考文献

    使用 bibtex4word 实现在 office word 中管理并插入参考文献, 简单的步骤流程如下: 1. 下载bibtex4word.zip  (无需安装): 下载地址: http://www ...

  9. imp-oracle10g数据库dmp导入到11g数据库提示IMP-00058,表或试图不存在

    拿了一份从10g数据库导出的dmp,本机安装的是11.2g的oracle数据库,执行imp导入后提示: IMP-00058: 遇到 ORACLE 错误 942ORA-00942: 表或视图不存在 开始 ...

  10. [docker]macvlan实现双vlan互通

    关于vlan的冷知识 vlan范围:0~4095 0,4095 保留 仅限系统使用 用户不能查看和使用这些VLAN 1 正常 Cisco默认VLAN 用户能够使用该VLAN,但不能删除它 2-1001 ...