zoukankan      html  css  js  c++  java
  • 事件监听、持有对方的引用--【J2SE】

    事件监听

    代码:

    /*
    事件监听:
    1.Java事件处理机制
    2.事件源、事件监听器概念及作用
    3.如何在一个现有组建上注册监听器
    */
    import java.awt.*;
    import java.awt.event.*;
    
    public class TestActionEvent{
    	public static void main(String args[]){
    		Frame f=new Frame("Test");//创建Frame窗体
    		Button b=new Button("Press me!");//创建Button按钮
    		Monitor bh=new Monitor();//创建检测
    		b.addActionListener(bh);//添加监听事件
    		f.add(b,BorderLayout.CENTER);//窗体添加事件
    		f.pack();//打包
    		f.setVisible(true);//显示
    	
    	}
    	
    	
    }
    
    class Monitor implements  ActionListener{
    	public void actionPerformed(ActionEvent e){
    		System.out.println("a button has been pressed");
    	}
    }
    

    效果,点击按钮,cmd窗口里面会打印  a button has been pressed的字样:

    持有对方的引用

    代码:

    import java.awt.*;
    import java.awt.event.*;
    public class TFMath{
    	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 lblPlus=new Label("+");
    				Button btnEqual=new Button("=");
    				btnEqual.addActionListener(new MyMonitor(this));
    				
    				setLayout(new FlowLayout());
    				add(num1);
    				add(lblPlus);
    				add(num2);
    				add(btnEqual);
    				add(num3);
    				pack();
    				setVisible(true);
    				
    	}
    }
    
    
    class MyMonitor implements ActionListener{
    	//TextField num1,num2,num3;
    	/*
    	public void actionPerformed(ActionEvent e) {
    		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());
    		tf.num3.setText("" + (n1+n2));
    	}
    }
    

    效果:

  • 相关阅读:
    华为平板暴力禁用wifi
    传输层与数据层架构一二谈
    内外网访问控制设计
    机房通信网设计
    list add元素覆盖之前元素问题思考
    IIS8无法调用Oracle.DataAccess .dll问题
    线程令牌
    Socket解决粘包问题2
    Socket解决粘包问题1
    Socket异步通信学习三
  • 原文地址:https://www.cnblogs.com/wangmei/p/4827336.html
Copyright © 2011-2022 走看看