zoukankan      html  css  js  c++  java
  • java新手笔记27 监听器类

    1、外部类监听

    package com.yfs.javase;
    
    import java.awt.Button;
    import java.awt.FlowLayout;
    import java.awt.Frame;
    import java.awt.TextField;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    //外部类监听
    public class FrameDemo1 extends Frame {
    	Button but1 = new Button(" + ");
    	Button but2 = new Button(" - ");
    	TextField text = new TextField(20);
    	public FrameDemo1() {
    		super("event1外部类");
    		setLocation(200, 150);
    		// 设置布局
    		setLayout(new FlowLayout());
    		text.setText("100");
    		text.setEditable(false);
    		//创建监听器对象
    		MyListener listener = new MyListener(this);
    		//建立关联  监听器添加到按钮
    		but1.addActionListener(listener);
    		but2.addActionListener(listener);
    		//text.getText();//取text值
    		add(but1);
    		add(text);
    		add(but2);
    		setResizable(false);
            pack();
    		// 默认隐藏 设置显示
    		setVisible(true);
    	}
    
    	public static void main(String[] args) {
    			new FrameDemo1();
    	}
    
    }
    
    
    //开发监听器  实现监听器接口
    class MyListener implements ActionListener {
    	private FrameDemo1 frame;
    	//通过构造方法强制传入窗体对象
    	public MyListener(FrameDemo1 frame) {
    		this.frame = frame;
    	}
       //ActionEvent  事件对象
    	@Override
    	public void actionPerformed(ActionEvent e) {
    //		System.out.println("按钮被单击了....");
    //		//事件对象
    		System.out.println(e.getActionCommand());//控件字符
    //		System.out.println(e.getSource());//事件源
    		//从text取值
    		//依赖传入对象
    		//FrameDemo1 frame = new FrameDemo1();//不能创建窗体对象
    		int val = Integer.parseInt(frame.text.getText());
    		System.out.println("val =  " + val);
    		String opt = e.getActionCommand().trim();
    		if("+".equals(opt)){
    			frame.text.setText(String.valueOf(val + 1));
    		} else if("-".equals(opt)){
    			frame.text.setText(String.valueOf(val - 1));
    		} 
    		
    		
    	}
    	
    }
    

     2.内部类监听

    package com.yfs.javase;
    
    import java.awt.Button;
    import java.awt.FlowLayout;
    import java.awt.Frame;
    import java.awt.TextField;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    //内部类监听
    public class FrameDemo2 extends Frame {
    	Button but1 = new Button(" + ");
    	Button but2 = new Button(" - ");
    	TextField text = new TextField(20);
    	public FrameDemo2() {
    		super("event1内部类");
    		setLocation(200, 150);
    		// 设置布局
    		setLayout(new FlowLayout());
    		text.setText("100");
    		text.setEditable(false);
    		//创建监听器对象
    		Listener listener = new Listener();
    		//建立关联  监听器添加到按钮
    		but1.addActionListener(listener);
    		but2.addActionListener(listener);
    		//text.getText();//取text值
    		add(but1);
    		add(text);
    		add(but2);
    		setResizable(false);
            pack();
    		// 默认隐藏 设置显示
    		setVisible(true);
    	}
    	//内部类
    	class Listener implements ActionListener {
    		@Override
    		public void actionPerformed(ActionEvent e) {
    			int val = Integer.parseInt(text.getText());
    			String opt = e.getActionCommand().trim();
    			System.out.println(opt);
    			if("+".equals(opt)){
    				text.setText(String.valueOf(val + 1));
    			} else if("-".equals(opt)){
    				text.setText(String.valueOf(val - 1));
    			} 
    		}
    		
    	}
    
    	public static void main(String[] args) {
    			new FrameDemo2();
    	}
    
    }
    

     3.自监听

    package com.yfs.javase;
    
    import java.awt.Button;
    import java.awt.FlowLayout;
    import java.awt.Frame;
    import java.awt.TextField;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    //自监听
    public class FrameDemo3 extends Frame implements ActionListener {
    	Button but1 = new Button(" + ");
    	Button but2 = new Button(" - ");
    	TextField text = new TextField(20);
    	public FrameDemo3() {
    		super("event1自监听类");
    		setLocation(200, 150);
    		// 设置布局
    		setLayout(new FlowLayout());
    		text.setText("100");
    		text.setEditable(false);
    		
    		//建立关联  监听器添加到按钮
    		but1.addActionListener(this);
    		but2.addActionListener(this);
    		//text.getText();//取text值
    		add(but1);
    		add(text);
    		add(but2);
    		setResizable(false);
            pack();
    		// 默认隐藏 设置显示
    		setVisible(true);
    	}
    	
    	public static void main(String[] args) {
    			new FrameDemo3();
    	}
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		//事件处理代码
    		int val = Integer.parseInt(text.getText());
    		String opt = e.getActionCommand().trim();
    		if("+".equals(opt)){
    			text.setText(String.valueOf(val + 1));
    		} else if("-".equals(opt)){
    			text.setText(String.valueOf(val - 1));
    		} 
    	}
    
    }
    

     4.匿名类监听

    package com.yfs.javase;
    
    import java.awt.Button;
    import java.awt.FlowLayout;
    import java.awt.Frame;
    import java.awt.TextField;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    //匿名类监听
    public class FrameDemo4 extends Frame {
    	Button but1 = new Button(" + ");
    	Button but2 = new Button(" - ");
    	TextField text = new TextField(20);
    	public FrameDemo4() {
    		super("event1匿名监听类");
    		setLocation(200, 150);
    		// 设置布局
    		setLayout(new FlowLayout());
    		text.setText("100");
    		text.setEditable(false);
    		
    		//建立关联  监听器添加到按钮
    		but1.addActionListener(new ActionListener() {
    			@Override
    			public void actionPerformed(ActionEvent arg0) {
    				int val = Integer.parseInt(text.getText()) + 1;
    				text.setText(String.valueOf(val));
    				
    			}
    		});
    		but2.addActionListener(new ActionListener() {
    			
    			@Override
    			public void actionPerformed(ActionEvent arg0) {
    				int val = Integer.parseInt(text.getText()) - 1;
    				text.setText(String.valueOf(val));
    				
    			}
    		});
    		//text.getText();//取text值
    		add(but1);
    		add(text);
    		add(but2);
    		setResizable(false);
            pack();
    		// 默认隐藏 设置显示
    		setVisible(true);
    	}
    	
    	public static void main(String[] args) {
    			new FrameDemo4();
    	}
    
    }
    

     5.背景图片

    package com.yfs.javase;
    
    import java.awt.FlowLayout;
    import java.awt.Image;
    
    import javax.swing.Icon;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    //匿名类监听
    public class FrameDemo5 extends JFrame {
    	
    	public FrameDemo5() {
    		super("event1匿名监听类");
    		setBounds(200, 150, 400, 400);
    		setLayout(new FlowLayout());
    		//标题图片
    		Image logo = new ImageIcon("img/m.gif").getImage();
    		setIconImage(logo);
    		//图片label
    		Icon ic = new ImageIcon("img\index.gif");
    		JLabel jl = new JLabel(ic);
    	
    		JButton but = new JButton(new ImageIcon("img/1_03.gif"));
    		add(but);
    		add(jl);
    		setResizable(false);
            //pack();
    		setVisible(true);
    	}
    	
    	public static void main(String[] args) {
    			new FrameDemo5();
    	}
    
    }
    
  • 相关阅读:
    Candy leetcode java
    Trapping Rain Water leetcode java
    Best Time to Buy and Sell Stock III leetcode java
    Best Time to Buy and Sell Stock II leetcode java
    Best Time to Buy and Sell Stock leetcode java
    Maximum Subarray leetcode java
    Word Break II leetcode java
    Word Break leetcode java
    Anagrams leetcode java
    Clone Graph leetcode java(DFS and BFS 基础)
  • 原文地址:https://www.cnblogs.com/feilongblog/p/4753567.html
Copyright © 2011-2022 走看看