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);
    		}
    	}
    
    }
    



  • 相关阅读:
    英语影视台词---经典电影台词(世间万物有始皆有终。)
    js数组,字符串,json互相转换函数有哪些
    php set_time_limit()的作用是什么
    界面分析---如何做美观的网页
    legend2---开发日志7(vue的使用场景有哪些,或者说使用的优缺点)
    legend2---开发日志1(legend的数据库整体设计思路是什么)
    legend2---开发日志2(注释和函数比较好的写法)
    legend2---开发日志3(thinkphp的入口目录是public的体现是什么)
    legend2---开发日志4(常用的链接传值方式有哪些)
    BZOJ 1823 JSOI 2010 盛宴 2-SAT
  • 原文地址:https://www.cnblogs.com/wjchang/p/3671616.html
Copyright © 2011-2022 走看看