设置鼠标移进后以及鼠标点击后的JButton的背景图片

时间:2022-11-29 10:22:57

有两种方式实现,第一种是直接采用JButton自带的方法,推荐使用这种方式,因为代码少,具体代码如下:

 enter.setRolloverIcon(new ImageIcon("E:\\javaSE代码\\TimeManager\\asset\\buttonmousein.jpg"));//设置鼠标进来之后JButton的背景图片
 enter.setPressedIcon(new ImageIcon("E:\\javaSE代码\\TimeManager\\asset\\buttonclicked.jpg"));//设置鼠标点击之后JButton的背景图片

另一种方式就是实现MouseListener接口了,具体代码如下:

 enter.addMouseListener(new MouseListener() {
			
			@Override
			public void mouseReleased(MouseEvent e) {
				enter.setIcon(new ImageIcon("E:\\javaSE代码\\TimeManager\\asset\\buttonnormal.jpg"));
				//这个方法和mousePressed方法配套使用,当鼠标释放时,JButton应当显示的背景图片
			}
			
			@Override
			public void mousePressed(MouseEvent e) {
				enter.setIcon(new ImageIcon("E:\\javaSE代码\\TimeManager\\asset\\buttonclicked.jpg"));
				//当鼠标长时间按在JButton上时,JButton应该显示的背景图片。实际上,完全可以代替mouseClicked方法
			}
			
			@Override
			public void mouseExited(MouseEvent e) {
				enter.setIcon(new ImageIcon("E:\\javaSE代码\\TimeManager\\asset\\buttonnormal.jpg"));
				//当鼠标移出时,JButton应当显示的背景图片
			}
			
			@Override
			public void mouseEntered(MouseEvent e) {
				enter.setIcon(new ImageIcon("E:\\javaSE代码\\TimeManager\\asset\\buttonmousein.jpg"));
				//当鼠标移进时,JButton应当显示的背景图片
			}
			
			@Override
			public void mouseClicked(MouseEvent e) {
//				enter.setIcon(new ImageIcon("E:\\javaSE代码\\TimeManager\\asset\\buttonclicked.jpg"));
				//当JButton被单击时,JButton应当显示的背景图片。
				//当这个方法和mousePressed方法被同时重写时,会出现一些不好的效果,各位可以自行实验。
				//建议只重写mousePressed方法就行,完全能代替mouseClicked方法的效果
			}
		});