JavaGUI设计-计算器

.利用GUI程序设计方法实现简单计算器的设计。运行效果可设计为如下界面,也可设计为windows系统中的计算器样式。
(此程序为整数计算)

1 基础页面设计
2 流布局器使用
3 单选按钮注册监听事件
4 文本框中内容获取,数据覆盖

除法
JavaGUI设计-计算器_第1张图片
乘法
JavaGUI设计-计算器_第2张图片

package JiSuanQi;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.time.temporal.JulianFields;

public class jisuanqi extends JFrame {
    //重构无参构造方式

    jisuanqi(){
        //设置窗体标题
        this.setTitle("计算器");
        //确定窗体的位置,参数依次为 X坐标,Y坐标 ,长 ,高。
        this.setBounds(600,300,650,350);
        //设置页面可以关闭
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        //获取内容面板容器
        Container c = getContentPane();
        //内容面板设置流布局,默认第四种,从左向右,hgap:水平间距 vgap:上下间距
        c.setLayout(new FlowLayout(FlowLayout.LEFT,60,75));
        /********************组件加入内容面板***********************************/
        //构造文本框,标签,并将其放入内容面板
        TextField tf_A = new TextField(10);
        TextField tf_B = new TextField(10);
        TextField tf_C = new TextField(10);
        JLabel jl_A = new JLabel("+");
        JLabel jl_B = new JLabel("=");
        c.add(tf_A);
        c.add(jl_A);
        c.add(tf_B);
        c.add(jl_B);
        c.add(tf_C);
        //构造按钮,并加入内容面板
        JButton jb_A = new JButton("加");
        JButton jb_B = new JButton("减");
        JButton jb_C = new JButton("乘");
        JButton jb_D = new JButton("除");
        JButton jb_E = new JButton("清除");
        c.add(jb_A);
        c.add(jb_B);
        c.add(jb_C);
        c.add(jb_D);
        c.add(jb_E);
        /********************给按钮注册监听器****************************************/
        //给”加“按钮写触发事件 new ActionLinster() 为触发事件,也可以建立触发事件的对象,注册监听时直接引用,如下
        //法 1
        jb_A.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //获取文本框中的内容(注意获取的数据类型为字符串)
                String strA = tf_A.getText();
                String strB = tf_B.getText();
                String strC = " "+(Integer.parseInt(strA)+Integer.parseInt(strB));
                tf_C.setText(strC);
            }
        });
        //法 2
        //对”减“设置触发事件
        ActionListener eventB = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String strA = tf_A.getText();
                String strB = tf_B.getText();
                String strC = " "+(Integer.parseInt(strA)-Integer.parseInt(strB));
                tf_C.setText(strC);
            }
        };
        //将触发事件注册给”减“
        jb_B.addActionListener(eventB);
        //对”乘“绑定监听
        jb_C.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String strA = tf_A.getText();
                String strB = tf_B.getText();
                String strC = " "+(Integer.parseInt(strA)*Integer.parseInt(strB));
                tf_C.setText(strC);
            }
        });
        //对”除“绑定监听事件(注意,除法可能会有小数,所以将数字处理为double 这里*1.0隐式转换)
        jb_D.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String strA = tf_A.getText();
                String strB = tf_B.getText();
                String strC = " "+(1.0*Integer.parseInt(strA)/Integer.parseInt(strB));
                tf_C.setText(strC);
            }
        });
        //对”清空“绑定监听事件
        jb_E.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //文本清空,可以用空字符串覆盖文本
                tf_A.setText("");
                tf_B.setText("");
                tf_C.setText("");
            }
        });
        /***********************************************/
        //界面可视化
        setVisible(true);
    }
    public static void main(String[] args) {
        new jisuanqi();
    }
}

欢迎交流

你可能感兴趣的:(Java学习,java,gui)