zoukankan      html  css  js  c++  java
  • java例程练习(简单的计算器[调停者 设计模式 及 内部类 ])

    import java.awt.*;
    import java.awt.event.*;
    
    public class TestInnerClass {
    
        public static void main(String[] args) {
        	new TFFrame().launchFrame();
        }
    
    }
    
    class TFFrame extends Frame {
    	public void launchFrame() {
    		TextField num1 = new TextField(10);
    		TextField num2 = new TextField(10);
    		TextField num3 = new TextField(15);
    		Label lbPlus = new Label("+");
    		Button btnEqual = new Button("=");
    		setLayout(new FlowLayout());
    		add(num1);
    		add(lbPlus);
    		add(num2);
    		add(btnEqual);
    		add(num3);
    		btnEqual.addActionListener(new MyMonitor(num1, num2, num3));
    		pack();
    		setVisible(true);
    	}
    
    }
    
    class MyMonitor implements ActionListener {
    	TextField num1,num2,num3;
    	MyMonitor(TextField num1, TextField num2, TextField num3) {//用构造函数实现
    		this.num1 = num1;
    		this.num2 = num2;
    		this.num3 = num3;
    	}
    
    
    	public void actionPerformed(ActionEvent e) {
    		int n1 = Integer.parseInt(num1.getText());
    		int n2 = Integer.parseInt(num2.getText());
    		int n3 = n1 + n2;
    		num3.setText("" + n3);
    
    	}
    }
    import java.awt.*;
    import java.awt.event.*;
    
    public class TestInnerClass {
    
        public static void main(String[] args) {
        	new TFFrame().launchFrame();
        }
    
    }
    
    class TFFrame extends Frame {
    	public void launchFrame() {
    		TextField num1 = new TextField(10);
    		TextField num2 = new TextField(10);
    		TextField num3 = new TextField(15);
    		Label lbPlus = new Label("+");
    		Button btnEqual = new Button("=");
    		setLayout(new FlowLayout());
    		add(num1);
    		add(lbPlus);
    		add(num2);
    		add(btnEqual);
    		add(num3);
    		btnEqual.addActionListener(new MyMonitor(this/*num1, num2, num3*/));
    		pack();
    		setVisible(true);
    	}
    
    }
    
    class MyMonitor implements ActionListener {
    //	TextField num1,num2,num3;
    //	MyMonitor(TextField num1, TextField num2, TextField num3) {
    //		this.num1 = num1;
    //		this.num2 = num2;
    //		this.num3 = num3;
    //	}
    
    	 //持有对方的引用
    	TFFrame tf = null;
    	public MyMonitor(TFFrame tf) {
    		this.tf = tf;
    	}
    
    	public void actionPerformed(ActionEvent e) {
    		int n1 = Integer.parseInt(tf.num1.getText());
    		int n2 = Integer.parseInt(tf.num2.getText());
    		int n3 = n1 + n2;
    		tf.num3.setText("" + n3);
    
    	}
    }
    import java.awt.*;
    import java.awt.event.*;
    
    public class TestInnerClass {
    
        public static void main(String[] args) {
        	new TFFrame().launchFrame();
        }
    
    }
    
    class TFFrame extends Frame {
    	TextField num1, num2, num3;
    	public void launchFrame() {
    		num1 = new TextField(10);
    		num2 = new TextField(10);
    		num3 = new TextField(15);
    		Label lbPlus = new Label("+");
    		Button btnEqual = new Button("=");
    		setLayout(new FlowLayout());
    		add(num1);
    		add(lbPlus);
    		add(num2);
    		add(btnEqual);
    		add(num3);
    		btnEqual.addActionListener(new MyMonitor());
    		pack();
    		setVisible(true);
    	}
    
    	//内部类:1,方便的访问包装类的成员
    	//       2,该类不允许或不需要其他类进行访问
    	class MyMonitor implements ActionListener {
    		public void actionPerformed(ActionEvent e) {
    			int n1 = Integer.parseInt(num1.getText());
    			int n2 = Integer.parseInt(num2.getText());
    			int n3 = n1 + n2;
    			num3.setText("" + n3);
    		}
    	}
    
    }
    



  • 相关阅读:
    第二次结对作业(陆桂莺+崔亚明)
    第一次结对作业
    第二次作业:代码互改
    markdown详细
    第一次个人编程作业:我的分数我做主
    手动下载transformers的模型
    torch设置GPU
    Python import的搜索路径和不可以import的解决方法 (On Linux)
    Python中windows路径的3种写法
    一台计算机安装多个版本的torch和CUDA的教程
  • 原文地址:https://www.cnblogs.com/wjchang/p/3671616.html
Copyright © 2011-2022 走看看