Frame的简易加法计算器(组合类与内部类)

Frame的简易加法计算器(组合类与内部类)

组合类

package com.zj.lesson02;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TestCalc {
    public static void main(String[] args) {
        new MyFrame2().loading();
    }
}  
class MyFrame2 extends Frame{
    private TextField field1;
    private TextField field2;
    private TextField field3;

    public TextField getField1() {
        return field1;
    }

    public void setField1(TextField field1) {
        this.field1 = field1;
    }

    public TextField getField2() {
        return field2;
    }

    public void setField2(TextField field2) {
        this.field2 = field2;
    }

    public TextField getField3() {
        return field3;
    }

    public void setField3(TextField field3) {
        this.field3 = field3;
    }

    public void loading(){
        field1 = new TextField(10);
        field2 = new TextField(10);
        field3 = new TextField(20);
        Button button = new Button("=");
        Label label = new Label("+");


        setLayout(new FlowLayout(FlowLayout.LEFT,20,10));
        add(field1);
        add(label);
        add(field2);
        add(button);
        add(field3);
        button.addActionListener(new MyCalcListener(this));
        pack();
        setVisible(true);

    }
}
class MyCalcListener implements ActionListener{
    //组合类
    MyFrame2 myFrame2;
    public MyCalcListener(MyFrame2 myFrame2) {
        this.myFrame2=myFrame2;
    }

    @Override
    public void actionPerformed(ActionEvent e){
        int Field1;
        int Field2;
        try {
            Field1=Integer.parseInt(myFrame2.getField1().getText());
            Field2=Integer.parseInt(myFrame2.getField2().getText());
            myFrame2.getField3().setText(String.valueOf(Field1+Field2));
        } catch (NumberFormatException numberFormatException) {
            System.out.println("未输入数字");
        }catch (Exception exception){
            exception.printStackTrace();
        }
    }
}

内部类

package com.zj.lesson02;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TestCalc {
    public static void main(String[] args) {
        new MyFrame2().loading();
    }
}
class MyFrame2 extends Frame{
    private TextField field1;
    private TextField field2;
    private TextField field3;

    public TextField getField1() {
        return field1;
    }

    public void setField1(TextField field1) {
        this.field1 = field1;
    }

    public TextField getField2() {
        return field2;
    }

    public void setField2(TextField field2) {
        this.field2 = field2;
    }

    public TextField getField3() {
        return field3;
    }

    public void setField3(TextField field3) {
        this.field3 = field3;
    }

    public void loading(){
        field1 = new TextField(10);
        field2 = new TextField(10);
        field3 = new TextField(20);
        Button button = new Button("=");
        Label label = new Label("+");


        setLayout(new FlowLayout(FlowLayout.LEFT,20,10));
        add(field1);
        add(label);
        add(field2);
        add(button);
        add(field3);
        button.addActionListener(new MyCalcListener());
        pack();
        setVisible(true);

    }
    //内部类
    private class MyCalcListener implements ActionListener{

        @Override
        public void actionPerformed(ActionEvent e){
            int Field1;
            int Field2;
            try {
                Field1=Integer.parseInt(field1.getText());
                Field2=Integer.parseInt(field2.getText());
                field3.setText(String.valueOf(Field1+Field2));
            } catch (NumberFormatException numberFormatException) {
                System.out.println("未输入数字");
            }catch (Exception exception){
                exception.printStackTrace();
            }
        }
    }
}

运行结果:

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值