JavaSE基础(61) GUI鼠标监听事件MouseListener

❶、JavaSE基础 专栏收录该内容
141 篇文章 11 订阅

实例:鼠标进入按钮放大,移出按钮缩小,双击退出程序

/**
 * MouseListener:鼠标监听事件
 * 给窗口添加一个按钮,
 * @author Administrator
 */
public class MouseListenerDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JFrame frame = new JFrame("窗口程序");//创建一个带标题的窗口对象frame
		frame.setVisible(true);//显示窗口
		frame.setSize(600, 400);//设置窗口大小
		frame.setLocationRelativeTo(null);//设置窗口居中
		frame.setDefaultCloseOperation(3);//点击X关闭程序  3为结束程序	
		frame.setLayout(null);//清空布局
		
		Button button = new Button("按钮");
		button.setBounds(100,100,100,50);
		button.setBackground(Color.ORANGE);
		MyMouseListener myMouseListener = new MyMouseListener(button);//创建一个鼠标监听事件对象
		button.addMouseListener(myMouseListener);//添加myMouseListener鼠标监听事件
		frame.add(button);
	}

}
class MyMouseListener implements MouseListener{

	private Button button;//接收外界传进来的button对象

	public MyMouseListener(Button button) {  //使用形参给字段button赋值
		super();
		this.button = button;
	}
	
	/*
	 * 每次点击组件时,自动调用此方法
	 */
	@Override
	public void mouseClicked(MouseEvent e) {
		// TODO Auto-generated method stub
		/*
		 * 退出程序
		 */
		//System.exit(0);//强制退出虚拟机
		//判断是否双击:   e.getClickCount()获取点击次数
		if (e.getClickCount() == 2) {
			System.exit(0);
		}
	}

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

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

	/*
	 * 当鼠标移动到组件上时,自动调用此方法
	 */
	@Override
	public void mouseEntered(MouseEvent e) {
		// TODO Auto-generated method stub
		int x = button.getX();//获取按钮当前的横坐标值
		int y = button.getY();//获取按钮当前的纵坐标值
		int width = button.getWidth();//获取按钮当前的宽
		int height = button.getHeight();//获取按钮当前的高
		button.setBounds(x,y,width+50,height+50);
	}

	/*
	 * 当鼠标离开组件上时,自动调用此方法
	 */
	@Override
	public void mouseExited(MouseEvent e) {
		// TODO Auto-generated method stub
		int x = button.getX();//获取按钮当前的横坐标值
		int y = button.getY();//获取按钮当前的纵坐标值
		int width = button.getWidth();//获取按钮当前的宽
		int height = button.getHeight();//获取按钮当前的高
		button.setBounds(x,y,width-50,height-50);
	}
	
}

 

  • 2
    点赞
  • 0
    评论
  • 5
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值