通过Frame做的加法计算器更好的理解内部类的使用

随笔记录一下,周六补了补awt和swing的知识,兴趣使然,毕竟这些技术现在很少有用的了。
跟着视频做的,目的不是为了画出多好看的窗口,而是为了更好的理解面向对象编程。
为自己更好的编码习惯,也为了更好的看懂别人的代码。
这里写的是第三种内部类的做法,省事但复用性差,个人更看好的是第二种组合类的使用,有板有眼的面向对象。

public class Test6 {
    public static void main(String[] args) {
        new MyFrame().loadFrame();
    }
}

    class MyFrame extends Frame {
        private TextField num1,num2,num3;

        public void loadFrame(){
            num1 = new TextField(10);
            num2 = new TextField(10);
            num3 = new TextField(10);

            Label label = new Label("+");
            Button button = new Button("=");
            button.addActionListener(new MyListener());

            add(num1);
            add(label);
            add(num2);
            add(button);
            add(num3);

            setLayout(new FlowLayout());
            setVisible(true);
            pack();
        }

        private class MyListener implements ActionListener{
            @Override
            public void actionPerformed(ActionEvent e) {
                // 获得加数和被加数
                int n1 = Integer.parseInt(num1.getText());
                int n2 = Integer.parseInt(num2.getText());
                // 将这两个数 + 法运算后,放到第三个框
                num3.setText(""+(n1+n2));
                // 清除前两个框
                num1.setText("");
                num2.setText("");
            }
        }
    }
posted on 2021-09-25 10:34  长夜余火  阅读(65)  评论(0)    收藏  举报