ActionListener

  • 【一】基本监听类
  • (1)通过接口对象创建监听事件
  • (2)通过new创建监听事件
  • 【二】项目实例
  • (1)配置文件
  • (2)代码实例
  • 【三】下一篇




【一】基本监听类

(1)通过接口对象创建监听事件

书写格式
ActionListener action = new ActionListener();

作用
当鼠标左键点击窗口中的按钮时触发



package key;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;

public class Key2 {
	
//------------------------------------------------------------------------	
	public Key2() {
		JFrame jframe = new JFrame();
		jframe.setSize(600, 600);		   		//设置窗口大小(600 * 600) 像素							
		jframe.setLocationRelativeTo(null); 	//居中显示		
		jframe.setLayout(null);					//设置绝对布局
		JButton jbutton = new JButton();		//添加一个按钮
		jbutton.setSize(200, 200);				//设置按钮大小为(200, 200)像素
		jbutton.setLocation(100, 100);  		//设置按钮在窗口(100,100)像素的位置
		jbutton.addActionListener(action);      //将监听事件加入,这样就可实现监听
		
		jframe.getContentPane().add(jbutton);	//获取容器,并把按钮添加到容器	
		jframe.setVisible(true);				//设置是否显示窗口
		jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//默认关闭方式
		
	}

//------------------------------------------------------------------------

	ActionListener action = new ActionListener() {			//调用接口
		
		@Override
		public void actionPerformed(ActionEvent e) {
			
			System.out.println("点击就实现");				
			
		}
	};	
	
//------------------------------------------------------------------------	
	public static void main(String[] args) {
		new Key2();			
	}

}


GIF演示

java AnalysisEventListener 中不能切换数据源 javaactionlistener_监听事件



(2)通过new创建监听事件



package key;

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;

public class Key1 {
		
//-----------------------------------------------------------------------------	
	public Key1() {
		JFrame jframe = new JFrame();
		jframe.setSize(600, 600);		   		//设置窗口大小(600 * 600) 像素							
		jframe.setLocationRelativeTo(null); 	//居中显示		
		jframe.setLayout(new GridLayout( 2, 2));//设置网格布局
		Container C = jframe.getContentPane();	//获取容器
		
		JButton jbutton1 = new JButton("按钮1");
		JButton jbutton2 = new JButton("按钮2");
		JButton jbutton3 = new JButton("按钮3");
		JButton jbutton4 = new JButton("按钮4");	//添加一个按钮	
		jbutton4.setLocation(100, 100);  		//设置按钮在窗口(100,100)像素的位置
		
//-----------------------------------------------------------------------------	
		
		//我们只对<按钮4>进行了监听事件	
		jbutton4.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				
				System.out.println("点击就实现");
				
			}
		});

//-----------------------------------------------------------------------------		
		
		C.add(jbutton1);	//通过获取容器,将按钮对象添加到布局里面
		C.add(jbutton2);
		C.add(jbutton3);
		C.add(jbutton4);						
		
		jframe.setVisible(true);									//设置是否显示窗口
		jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		//默认关闭方式
		
	}
	
//-----------------------------------------------------------------------------	
	public static void main(String[] args) {
		new Key1();
	}

}


GIF演示

java AnalysisEventListener 中不能切换数据源 javaactionlistener_监听事件_02



上面代码设置了网格布局,并将“按钮4”添加了监听事件



【二】项目实例



(1)配置文件

------------------------------------------------------点击图片复制到桌面吧--------------------------------------------------------------

java AnalysisEventListener 中不能切换数据源 javaactionlistener_监听事件_03


java AnalysisEventListener 中不能切换数据源 javaactionlistener_获取图片_04


java AnalysisEventListener 中不能切换数据源 javaactionlistener_java_05


java AnalysisEventListener 中不能切换数据源 javaactionlistener_java_06

将图片复制到src文件中,如下图

java AnalysisEventListener 中不能切换数据源 javaactionlistener_获取图片_07



(2)代码实例

package key;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;


public class Key3 {
	int width;
	int height;
	public Key3() {	
		
		ImageIcon image = new ImageIcon("src/1.jpg");	//获取图片
		width = image.getIconWidth();					//获取图片宽度	
		height = image.getIconHeight();					//获取图片高度
		
		JFrame jframe = new JFrame();
		jframe.setSize(width, height);					//设置窗口大小
		jframe.setLocationRelativeTo(null);				//窗口剧中显示
		jframe.setLayout(new FlowLayout());
		
		Container C = jframe.getContentPane();
		
		JLabel jlabel = new JLabel();					//添加标签组件
		jlabel.setLayout(new FlowLayout());				//设置标签为流布局
		jlabel.setIcon(image);							//将获取得到图片添加到标签组件中
		

		JButton jbutton1 = new JButton("按钮1");			//添加两个按钮
		JButton jbutton2 = new JButton("按钮2");
		JButton jbutton3 = new JButton("按钮3");
		JButton jbutton4 = new JButton("按钮4");
		jlabel.add(jbutton1);							//将按钮添加到标签组件中
		jlabel.add(jbutton2);
		jlabel.add(jbutton3);
		jlabel.add(jbutton4);
//-------------------------------------------------------------------------------	
		jbutton1.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				ImageIcon image1 = new ImageIcon("src/1.jpg");
				width = image1.getIconWidth();					//获取图片宽度	
				height = image1.getIconHeight();				//获取图片高度
				jframe.setSize(width, height);  				//设置窗口大小
				jlabel.setIcon(image1);
				
				
			}
		});
		
//-------------------------------------------------------------------------------		
		jbutton2.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				ImageIcon image2 = new ImageIcon("src/2.jpg");
				width = image2.getIconWidth();					//获取图片宽度	
				height = image2.getIconHeight();				//获取图片高度
				jframe.setSize(width, height); 
				jlabel.setIcon(image2);
				
			}
		});
		
//-------------------------------------------------------------------------------
		
		jbutton3.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				ImageIcon image3 = new ImageIcon("src/3.jpg");
				width = image3.getIconWidth();					//获取图片宽度	
				height = image3.getIconHeight();				//获取图片高度
				jframe.setSize(width, height); 
				jlabel.setIcon(image3);
				
			}
		});
		
//-------------------------------------------------------------------------------
		
		
		jbutton4.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				ImageIcon image4 = new ImageIcon("src/4.jpg");
				width = image4.getIconWidth();					//获取图片宽度	
				height = image4.getIconHeight();				//获取图片高度
				jframe.setSize(width, height); 
				jlabel.setIcon(image4);
				
			}
		});
		
//-------------------------------------------------------------------------------	
		C.add(jlabel);									//将标签添加到容器中								
		jframe.setVisible(true);
		jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
	}
	

	public static void main(String[] args) {
		new Key3();
	}

}


java AnalysisEventListener 中不能切换数据源 javaactionlistener_监听事件_08