GUI---之简易计算器(三种)

在这里插入图片描述

这是要达到的效果下面将以三种不同方式完成

  • 一步步完成
public class 计算器 {
    public static void main(String[] args) {
        new jisuanqi();
    }
}
class jisuanqi extends Frame{
    public jisuanqi(){
        TextField field1 = new TextField(10);
        TextField field2 = new TextField(10);
        TextField field3 = new TextField(20);

        Button button = new Button("=");
        button.addActionListener(new MyCalculator(field1,field2,field3));


        Label label = new Label("+");

        setLayout(new FlowLayout());

        add(field1);
        add(label);
        add(field2);
        add(button);
        add(field3);

        pack();
        setVisible(true);
    }
}
class MyCalculator implements ActionListener{
    TextField field1,field2,field3;
    public MyCalculator(TextField field1,TextField field2,TextField field3){
        this.field1=field1;
        this.field2=field2;
        this.field3=field3;
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        int i = Integer.parseInt(field1.getText());
        int i2 = Integer.parseInt(field2.getText());

        field3.setText(""+(i+i2));
        field1.setText("");
        field2.setText("");
    }
}
  • 第一次简化

public class 计算器2 {
    public static void main(String[] args) {
        new jisuanqi2().loadframe();
    }
}
class jisuanqi2 extends Frame{
    TextField field1,field2,field3;
    public void loadframe() {
        field1 = new TextField(5);
        field2 = new TextField(5);
        field3 = new TextField(10);
        Button button = new Button("=");
        Label label = new Label("+");

        button.addActionListener(new jisuanqijiantinglei(this));
        add(field1);
        add(label);
        add(field2);
        add(button);
        add(field3);
        setLayout(new FlowLayout());
        setVisible(true);
        pack();
        close(this);
    }
    static void close(Frame frame){
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}
class jisuanqijiantinglei implements ActionListener{
    jisuanqi2 xiaojisuanqi=null;
    TextField field1,field2,field3;
    public jisuanqijiantinglei(jisuanqi2 xiaojisuanqi){
        this.xiaojisuanqi=xiaojisuanqi;
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        int i = Integer.parseInt(xiaojisuanqi.field1.getText());
        int i1 = Integer.parseInt(xiaojisuanqi.field2.getText());

        xiaojisuanqi.field3.setText(""+(i+i1));
        xiaojisuanqi.field1.setText("");
        xiaojisuanqi.field2.setText("");
    }
}
  • 第二次简化(最终要求)
public class 计算器3 {
    public static void main(String[] args) {
        new jisuanqi3().loadframe();
    }
}
class jisuanqi3 extends Frame {
    TextField field1,field2,field3;
    public void loadframe() {
        field1 = new TextField(5);
        field2 = new TextField(5);
        field3 = new TextField(10);
        Button button = new Button("=");
        Label label = new Label("+");

        button.addActionListener(new jisuanqijiantinglei3());
        add(field1);
        add(label);
        add(field2);
        add(button);
        add(field3);
        setLayout(new FlowLayout());
        setVisible(true);
        pack();
        close(this);
    }
    static void close(Frame frame){
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
    public class jisuanqijiantinglei3 implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            int i = Integer.parseInt(field1.getText());
            int i1 = Integer.parseInt(field2.getText());

            field3.setText(""+(i+i1));
            field1.setText("");
            field2.setText("");
        }
    }
}
发布了43 篇原创文章 · 获赞 7 · 访问量 1742

猜你喜欢

转载自blog.csdn.net/y18791050779/article/details/104224572