zoukankan      html  css  js  c++  java
  • Java学习基础-GUI编程

    一、使用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)的和转换成字符串 
             */
        }
    }
  • 相关阅读:
    oracle-高级查询
    java-集合框架
    java-String-StringBuffer
    ROS消息, 服务, 主题, 订阅 5
    ROS消息, 服务, 主题, 订阅 4
    ROS消息, 服务, 主题, 订阅 3
    ROS消息, 服务, 主题, 订阅 2
    ROS消息, 服务, 主题, 订阅 1
    可交互的Marker
    RVIZ建Maker
  • 原文地址:https://www.cnblogs.com/linzhijie45/p/6039604.html
Copyright © 2011-2022 走看看