package com.zym.lesson9; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class TestCalc2 { public static void main(String[] args) { //调用loadFrame方法 new MCalculator().LoadFrame(); } } //计算器类 class MCalculator extends JFrame { //属性 TextField num1,num2,num3; //方法 public void LoadFrame(){ //三个文本框 num1 = new TextField(10); num2 = new TextField(10); num3 = new TextField(20); //一个按钮 Button button = new Button("="); //对按钮添加一个事件,把自己 这个对象扔进去 button.addActionListener(new MyCalculatorListener1(this)); //一个标签 Label label = new Label("+"); //流式布局 setLayout(new FlowLayout()); //添加组件 add(num1); add(label); add(num2); add(button); add(num3); //自适应大小 pack(); //设置可见 setVisible(true); addWindowListener(new WindowAdapter() { //窗体关闭时做的事 @Override public void windowClosing(WindowEvent e) { // super.windowClosed(e); System.exit(0); } } ); } //构造器 public MCalculator() { } } //监听器类 class MyCalculatorListener1 implements ActionListener { //获取计算器对象,在一个类中,组合另外一个类 MCalculator mCalculator=null; //以参数的形式传递进来 public MyCalculatorListener1( MCalculator mCalculator){ this.mCalculator=mCalculator; } @Override public void actionPerformed(ActionEvent e) { // 1获得加数与被加数 // 通过操作对象的属性 int n1=Integer.parseInt(mCalculator.num1.getText()); int n2=Integer.parseInt(mCalculator.num2.getText()); // 2 将这个值加法运行后,放到第三个框中 mCalculator.num3.setText(""+(n1+n2)); // 3 清除前两个框 mCalculator.num1.setText(""); mCalculator.num2.setText(""); } }
标签:MCalculator,import,lesson9,面向对象,add,mCalculator,计算器,new,public From: https://www.cnblogs.com/zym97816/p/17746472.html