博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java学习基础-GUI编程
阅读量:7260 次
发布时间:2019-06-29

本文共 2279 字,大约阅读时间需要 7 分钟。

一、使用TextFile实现简单的计算器

package cn.javastudy.summary;import java.awt.*;import java.awt.event.*;public class TestMath {    public static void main(String args[]) {        new TFFrame();    }}/* 这里主要是完成计算器元素的布局 */class TFFrame extends Frame {    TFFrame() {        /*         * 创建3个文本框,并指定其初始大小分别为10个字符和15个字符的大小 这里使用的是TextField类的另外一种构造方法 public TextField(int columns)         */        TextField num1 = new TextField(10);        TextField num2 = new TextField(10);        TextField num3 = new TextField(15);        /* 创建等号按钮 */        Button btnEqual = new Button("=");        btnEqual.addActionListener(new MyMonitor(num1, num2, num3));        /* 给等号按钮加上监听,让点击按钮后有响应事件发生 */        Label lblPlus = new Label("+");        /* “+”是一个静态文本,所以使用Label类创建一个静态文本对象 */        setLayout(new FlowLayout());        /* 把Frame默认的BorderLayout布局改成FlowLayout布局 */        add(num1);        add(lblPlus);        add(num2);        add(btnEqual);        add(num3);        pack();        setVisible(true);    }}class MyMonitor implements ActionListener {    TextField num1, num2, num3;    /*     * 为了使对按钮的监听能够对文本框也起作用,      * 所以在自定义类MyMonitor里面定义三个TextField类型的对象 num1,num2,num3,     * 并且定义了MyMonitor类的一个构造方法 这个构造方法带有三个TextField类型的参数,     * 用于接收 从TFFrame类里面传递过来的三个TextField类型的参数      * 然后把接收到的三个TextField类型的参数赋值给在本类中声明的 三个TextField类型的参数num1,num2,num3 然后再在actionPerformed()方法里面处理num1,num2,num3     */    public MyMonitor(TextField num1, TextField num2, TextField num3) {        this.num1 = num1;        this.num2 = num2;        this.num3 = num3;    }    public void actionPerformed(ActionEvent e) {        /* 事件的相关信息都封装在了对象e里面,通过对象e的相关方法就可以获取事件的相关信息 */        int n1 = Integer.parseInt(num1.getText());/* num1对象调用getText()方法取得自己显示的文本字符串 */        int n2 = Integer.parseInt(num2.getText());/* num2对象调用getText()方法取得自己显示的文本字符串 */        num3.setText("" + (n1 + n2));/* num3对象调用setText()方法设置自己的显示文本 */        num1.setText("");        /* 计算结束后清空num1,num2文本框里面的内容 */        num2.setText("");        // num3.setText(String.valueOf((n1+n2)));        /* 字符串与任意类型的数据使用“+”连接时得到的一定是字符串,         * 这里使用一个空字符串与int类型的数连接,这样就可以直接把(n1+n2)得到的int类型的数隐式地转换成字符串了,         * 这是一种把别的基础数据类型转换成字符串的一个小技巧。         * 也可以使用“String.valueOf((n1+n2))”把(n1+n2)的和转换成字符串          */    }}

 

转载于:https://www.cnblogs.com/linzhijie45/p/6039604.html

你可能感兴趣的文章
(转)linux下和云端通讯的例程, ubuntu和openwrt实验成功(一)
查看>>
js基本函数
查看>>
python 中,实现对数据集的归一化(0-1之间)
查看>>
hiho 第118周 网络流四·最小路径覆盖
查看>>
Generalized Abbreviation
查看>>
我的Python成长之路---第四天---Python基础(14)---2016年1月23日(寒风刺骨)
查看>>
VBA7种文档遍历法
查看>>
阿里云人脸比对API封装
查看>>
Pscp与服务器文件传递
查看>>
chrome中自动回填表单解决
查看>>
嵌入式Linux之旅——环境搭建篇之搭建基本开发环境
查看>>
Bootstrap
查看>>
用CNTK搞深度学习 (二) 训练基于RNN的自然语言模型 ( language model )
查看>>
洛谷【P1523】旅行商的背包(算法导论 15-1) 题解
查看>>
HDU1325 Is It A Tree?
查看>>
CCF201609-4 交通规划(100分)
查看>>
POJ NOI MATH-7648 蓄水池水管问题
查看>>
CCF NOI1019 分段函数
查看>>
获取费行间样式
查看>>
Linux Shell学习小记 - function, here document, if statement, declare constant
查看>>