在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. 洛谷.2051.[AHOI2009]中国象棋(DP)

    题目链接 /* 每行每列不能超过2个棋子,求方案数 前面行对后面行的影响只有 放了0个.1个.2个 棋子的列数,与排列方式无关 所以设f[i][j][k]表示前i行,放了0个棋子的有j列,放了1个棋子 ...

  2. Python3Numpy——相关性协方差应用

    基本理论 Correlation Are there correlations between variables? Correlation measures the strength of the ...

  3. Python序列解包

    元组的序列解包range对象的序列解包迭代对象的序列解包列表的序列解包字典的序列解包序列解包与遍历序列解包的其它用法 元组的序列解包 x,y,z = (1,2,3) print(x,y,z) 1 2 ...

  4. 潭州课堂25班:Ph201805201 爬虫高级 第七课 sclapy 框架 爬前程网 (课堂笔)

    定时对该网页数据采集,所以每次只爬第一个页面就可以, 创建工程 scrapy startproject qianchen 创建运行文件 cd qianchenscrapy genspider qian ...

  5. JAVA中验证邮箱是否有效

    String email = form.getEmail(); if(!email.matches("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\\.[a-zA ...

  6. [模板][P3690]Link Cut Tree

    Description: 给定n个点以及每个点的权值,要你处理接下来的m个操作.操作有4种.操作从0到3编号.点从1到n编号. 0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor和 ...

  7. tomcat出现Error in dependencyCheck java.io.IOException: invalid manifest format

    我只能说这个错误很坑爹,检查了很多地方都没问题,结果最后在MANIFEST.MF 里面把所有的空的行都删掉就好了.坑爹有木有.

  8. 跟着ZooKeeper学Java——CountDownLatch和Join的使用

    在阅读ZooKeeper的源码时,看到这么一个片段,在单机模式启动的时候,会调用下面的方法,根据zoo.cfg的配置启动单机版本的服务器: public void runFromConfig(Serv ...

  9. [原创]Eclipse Memory Analyzer tool(MAT)工个使用介绍

    [原创]Eclipse Memory Analyzer tool(MAT)工个使用介绍

  10. AIX上解压缩.tar.Z, .tar.gz, .zip及.tgz

    在AIX上最常见的压缩文件就是.tar檔了,而除了tar文件以外,有时会遇到数据是用其它的压缩文件格式,所以偶顺手整理了一些常见的压缩文件格式,在AIX要怎么解压缩 : ·    .tar.Z fil ...