在GUI中,常用文本框和文本区实现数据的输入和输出。如果采用文本区输入,通常另设一个数据输入完成按钮。当数据输入结束时,点击这个按钮。事件处理程序利用getText()方法从文本区中读取字符串信息。对于采用文本框作为输入的情况,最后输入的回车符可以激发输入完成事件,通常不用另设按钮。事件处理程序可以利用单词分析器分析出一个个数,再利用字符串转换数值方法,获得输入的数值。对于输出,程序先将数值转换成字符串,然后通过setText()方法将数据输出到文本框或文本区。

【例 11-9】小应用程序设置一个文本区、一个文本框和两个按钮。用户在文本区中输入整数序列,单击求和按钮,程序对文本区中的整数序列进行求和,并在文本框中输出和。单击第二个按钮,清除文本区和文本框中的内容。

 import java.util.*;import java.applet.*;import java.awt.*;
import javax.swing.*;import java.awt.event.*;
public class J509 extends Applet implements ActionListener{
JTextArea textA;JTextField textF;JButton b1,b2;
public void init(){
setSize(250,150);
textA=new JTextArea("",5,10);
textA.setBackground(Color.cyan);
textF=new JTextField("",10);
textF.setBackground(Color.pink);
b1=new JButton("求 和"); b2=new JButton("重新开始");
textF.setEditable(false);
b1.addActionListener(this); b2.addActionListener(this);
add(textA); add(textF); add(b1);add(b2);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==b1){
String s=textA.getText();
StringTokenizer tokens=new StringTokenizer(s);
//使用默认的分隔符集合:空格、换行、Tab符合回车作分隔符
int n=tokens.countTokens(),sum=0,i;
for(i=0;i<=n-1;i++){
String temp=tokens.nextToken();//从文本区取下一个数据
sum+=Integer.parseInt(temp);
}
textF.setText(""+sum);
}
else if(e.getSource()==b2){
textA.setText(null);
textF.setText(null);
}
}
}

【例 11-10】小应用程序计算从起始整数到终止整数中是因子倍数的所有数。小程序容器用GridLayout布局将界面划分为3行列,第一行是标签,第二行和第三行是两个Panel。设计两个Panel容器类Panel1,Panel2,并分别用GridLayout布局划分。Panel1为1行6列,Panel2为1行4列。然后将标签和容器类Panel1,Panel2产生的组件加入到窗口的相应位置中。

 import java.applet.*;import javax.swing.*;
import java.awt.*;import java.awt.event.*;
class Panel1 extends JPanel{
JTextField text1,text2,text3;
Panel1(){//构造方法。当创建Panel对象时,Panel被初始化为有三个标签
//三个文本框,布局为GridLayout(1,6)
text1=new JTextField(10);text2=new JTextField(10);
text3=new JTextField(10);setLayout(new GridLayout(1,6));
add(new JLabel("起始数",JLabel.RIGHT));add(text1);
add(new JLabel("终止数",JLabel.RIGHT));add(text2);
add(new JLabel("因子",JLabel.RIGHT));add(text3);
}
}
class Panel2 extends JPanel{//扩展Panel类
JTextArea text;JButton Button;
Panel2(){//构造方法。当创建Panel对象时,Panel被初始化为有一个标签
//一个文本框,布局为GridLayout(1,4)
text=new JTextArea(4,10);text.setLineWrap(true);
JScrollPane jsp=new JScrollPane(text);
Button=new JButton("开始计算");
setLayout(new GridLayout(1,4));
add(new JLabel("计算结果:",JLabel.RIGHT));
add(jsp);
add(new Label());add(Button);
}
}
public class J510 extends Applet implements ActionListener{
Panel1 panel1;Panel2 panel2;
public void init(){
setLayout(new GridLayout(3,1));
setSize(400,200);panel1=new Panel1();panel2=new Panel2();
add(new JLabel("计算从起始数到终止数是因子倍数的数",JLabel.CENTER));
add(panel1);add(panel2);
(panel2.Button).addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==(panel2.Button)){
long n1,n2,f,count=0;
n1=Long.parseLong(panel1.text1.getText());
n2=Long.parseLong(panel1.text2.getText());
f=Long.parseLong(panel1.text3.getText());
for(long i=n1;i<=n2;i++){
if(i%f==0)
panel2.text.append(String.valueOf(i)+"");
}
}
}
}

系列文章:

Java知多少(86)文本框和文本区的输入输出的更多相关文章

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

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

  2. Java知多少(85)文本框和文本区

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

  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. Codeforces.1051F.The Shortest Statement(最短路Dijkstra)

    题目链接 先随便建一棵树. 如果两个点(u,v)不经过非树边,它们的dis可以直接算. 如果两个点经过非树边呢?即它们一定要经过该边的两个端点,可以直接用这两个点到 u,v 的最短路更新答案. 所以枚 ...

  2. MoreWindows 微软认证专家博客目录(白话算法,C++ STL,windows编程)

    为了方便大家查找和学习,现将本人博客中所有博客文章列出目录. (http://blog.csdn.net/morewindows) 一.      白话经典算法 目前有17篇,分为七大排序和经典面试题 ...

  3. rabbitmq使用(三)

    Publish/Subscribe In the previous tutorial we created a work queue. The assumption behind a work que ...

  4. BZOJ2759一个动态树好题 LCT

    题如其名啊 昨天晚上写了一发忘保存 只好今天又码一遍了 将题目中怕$p[i]$看做$i$的$father$ 可以发现每个联通块都是一个基环树 我们对每个基环删掉环上一条边 就可以得到一个森林了 可以用 ...

  5. restful开发API

    http://blog.csdn.net/kkkloveyou/article/details/21391033 小示例http://blog.csdn.net/u011645059/article/ ...

  6. Queue depth

    Queue depth - It is the number of I/O requests that can be kept waiting to be serviced in a port que ...

  7. centos7安装配置mysql5.6

    1. 下载mysql的repo源 $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 2. 安装mysql-co ...

  8. C#中Invoke的用法1

    invoke和begininvoke 区别 一直对invoke和begininvoke的使用和概念比较混乱,这两天看了些资料,对这两个的用法和原理有了些新的认识和理解.  首先说下,invoke和be ...

  9. 每天一个linux命令(3):ls命令

    1.命令简介 ls(list 列出目录内容)命令用来列出显示指定目录里的文件及文件夹清单,缺省下ls用来打印出当前目录的清单.通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限 ...

  10. list与Set、Map区别及适用场景

    1.List,Set都是继承自Collection接口,Map则不是 2.List特点: 元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素不可重复,重复元素会覆盖掉,(注意:元素虽然无放 ...