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

    效果:

  • 相关阅读:
    树形dp--P2014 [CTSC1997]选课
    背包变形--P1759 通天之潜水
    区间dp--P1880 [NOI1995]石子合并
    动态规划--P2758 编辑距离
    筛法--CF449C Jzzhu and Apples
    BZOJ3998: [TJOI2015]弦论(后缀自动机,Parent树)
    BZOJ3530: [Sdoi2014]数数(Trie图,数位Dp)
    BZOJ1444: [Jsoi2009]有趣的游戏(Trie图,矩乘)
    BZOJ1195: [HNOI2006]最短母串(Trie图,搜索)
    BZOJ3238: [Ahoi2013]差异(后缀数组)
  • 原文地址:https://www.cnblogs.com/wangmei/p/4827336.html
Copyright © 2011-2022 走看看