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

有两种方式实现,第一种是直接采用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应该显示的背景图片。实际上&
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要创建一个圆形的JButton,可以使用Java的Graphics2D类和Shape接口来实现。以下是一个简单的示例代码: ```java import javax.swing.*; import java.awt.*; import java.awt.geom.*; public class CircularButton extends JButton { public CircularButton(String label) { super(label); // 设置按钮大小和边距 Dimension size = getPreferredSize(); size.width = size.height = Math.max(size.width, size.height); setPreferredSize(size); setMargin(new Insets(0, 0, 0, 0)); // 设置按钮不画边框和背景 setContentAreaFilled(false); } // 绘制圆形按钮 protected void paintComponent(Graphics g) { if (getModel().isArmed()) { // 按钮被按下时绘制灰色圆形 g.setColor(Color.gray); } else { // 按钮未被按下时绘制白色圆形 g.setColor(Color.white); } g.fillOval(0, 0, getSize().width - 1, getSize().height - 1); super.paintComponent(g); } // 绘制圆形边框 protected void paintBorder(Graphics g) { g.setColor(getForeground()); g.drawOval(0, 0, getSize().width - 1, getSize().height - 1); } // 判断是否在圆形区域内 Shape shape; public boolean contains(int x, int y) { if (shape == null || !shape.getBounds().equals(getBounds())) { shape = new Ellipse2D.Float(0, 0, getWidth(), getHeight()); } return shape.contains(x, y); } // 测试 public static void main(String[] args) { JFrame frame = new JFrame("Circular Button"); frame.setLayout(new FlowLayout()); frame.setSize(300, 200); CircularButton button = new CircularButton("Click me!"); frame.add(button); frame.setVisible(true); } } ``` 在这个示例中,我们重写了JButton的paintComponent和paintBorder方法来实现绘制圆形按钮。contains方法用于判断鼠标是否在圆形区域内。最后,在测试代码中创建了一个CircularButton并添加到JFrame中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值