Java课程设计3

对对象所做的一组动作称为事件
事件处理机制中,涉及到三个对象:事件本身、事件的来源和事件处理器。
事件是事件类的一个对象,事件类的根类是Java.util.EventObject通常所用到的事件类在Java.awt.event包中。
事件源也是组件,事件源传给事件监听器(以接口的形式),事件+后缀名Listener就是事件监听器。
组件可以有多个事件,但一个事件共有一个监听器。
事件源提供了一组方法,用于为事件注册一个或多个监听器对象,并向其发送事件对象,
package com.imau.gui;
import java.awt.;
import javax.swing.
;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Login extends JFrame implements ActionListener{
private JLabel lname;
private JLabel lpass;
private JTextField tname;//用户名是明文
private JPasswordField tpass;//密码不是明文
private JButton login;

private void initEvnet(){
	login.addActionListener(this);
	
}



private void init(){


	lname=new JLabel("用户名");
	lpass=new JLabel("密码");
	tname=new JTextField(14);
	tpass=new JPasswordField(14);
	login=new JButton ("登录");
	Dimension dim=getToolkit().getScreenSize();
	int w=dim.height/2;
	int h=dim.width/2;
	
	
	initEvnet();//做调用
	
	this.setLayout(new FlowLayout(FlowLayout.CENTER));
	this.add(lname);
	this.add(tname);
	this.add(lpass);
	this.add(tpass);
	this.add(login);
	this.setTitle("QQ登录");
	this.setSize(255,125);
	this.setLocation(400,300);
	this.setVisible(true);
	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public Login(){
	init();
}

//处理器的方法

@Override
public void actionPerformed(ActionEvent e) {
	
	System.out.println("单击了按钮······"+tname.getText()+","+tpass.getText()+","+e.getSource());//获取到输入的密码和用户名。e.getSource()方法是打印的结果,判断多个事件中哪个的事件
	
	
}

}

package com.imau.gui;
import java.awt.;
import javax.swing.
;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;

import java.awt.event.*;
public class EvtentDemo extends JFrame{
private JTextField tf;
private JTextField tf2;
private JPanel pane1;
private JComboBox box;
private String data[]={“A”,“B”,“C”,“D”};

private void initEvtent(){
	tf.addFocusListener(new MyListener());
	tf.addKeyListener(new MyListener());
	pane1.addMouseListener(new MyListener());
	pane1.addMouseMotionListener(new MyListener());
	box.addItemListener(new MyListener());
}

//调用EvtentDemo
public EvtentDemo(){
	init();
}

private void init(){
	
    tf=new JTextField(10);
   tf2=new JTextField(10);
   pane1=new JPanel();
   pane1.setSize(200, 200);
   pane1.setBackground(Color.BLUE);
   box=new JComboBox<>(data);
   this.add(pane1);
    this.add(tf2);
    this.add(tf);
    this.add(box);
	this.setLayout(new FlowLayout(FlowLayout.CENTER));

	 initEvtent();
	//获取屏幕大小,设置位置 大小
	Dimension dim=getToolkit().getScreenSize();
	int H=dim.height/2;
    int W=dim.width/2;
    this.setResizable(false);
	this.setTitle("事件案例");
	this.setSize(500,300);
	this.setLocation(W-500/2,H-300/2);
	this.setVisible(true);
	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
   class MyListener implements FocusListener,KeyListener,MouseMotionListener, MouseListener,ItemListener{

	@Override
	public void focusGained(FocusEvent arg0) {
		System.out.println("aa");
		
	}

	@Override
	public void focusLost(FocusEvent arg0) {
	       
		//getComponent()   获取当前组件对象
		//requestFocus()  从新获得焦点
		
		//System.out.println("bb");
		if(tf.getText().length()<=8) {
			System.out.println("密码必须大于8位");
			tf.requestFocus();
			
		}
		
	}

	@Override
	public void keyPressed(KeyEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	//按下时
	public void keyReleased(KeyEvent e) {
		//System.out.println("按下键盘"+e.getKeyCode());
		if(e.getKeyCode()==KeyEvent.VK_KP_UP){
			System.out.println("坦克向上移动");
		}
	}

	@Override
	//释放时
	public void keyTyped(KeyEvent e) {
		
		System.out.println("释放键盘"+e.getKeyChar());
	}

	
	

	@Override
	public void mouseClicked(MouseEvent e) {
		System.out.println("mouseClicked=="+e.getButton());
		
	}

	@Override
	public void mouseEntered(MouseEvent e) {
		//System.out.println("mouseEntered");
		
	}

	@Override
	public void mouseExited(MouseEvent e) {
		//System.out.println("mouseExited");
		
	}

	@Override
	public void mousePressed(MouseEvent e) {
		System.out.println("mousePressed");
		
	}

	@Override
	//按下鼠标
	public void mouseReleased(MouseEvent e) {
		System.out.println("mouseReleased");
		
	}

	@Override
	//按下鼠标拖拽
	public void mouseDragged(MouseEvent e) {
		System.out.println("mouseDragged");
		
	}

	@Override
	public void mouseMoved(MouseEvent e) {
		//获得X,Y坐标
		e.getX();
		e.getY();
		//获取单击时哪个键
		e.getButton();
		System.out.println("mouseMoved");
		
	}
  //选项发生改变时候会触发
	@Override
	public void itemStateChanged(ItemEvent arg0) {
		System.out.println("选项菜单");
	}


   }
   //class MyListener2 extends FocusAdapter{
		//@Override
		//public void focusLost(FocusEvent e){
			//super.focusLost(e);
		//}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值