JAVA按钮重载如何实现椭圆按钮

以下是我的代码,但是点击椭圆外到本来的按钮方形区域依然会触发事件,怎么解决。

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JButton;


//	
public class StartJButton extends JButton implements MouseListener{

	private static final long serialVersionUID = 1L;

	public StartJButton(){
		this.setBackground(new Color(65, 201, 252, 50));
		this.addMouseListener(this);
	}
	
	public StartJButton(String text){
		super(text);
		this.setBackground(new Color(65, 201, 252, 50));
		this.addMouseListener(this);
	}
	
	
	public void paintComponent(Graphics g){
		
		
		Graphics2D g2 = (Graphics2D) g;
		g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
		g2.setColor(super.getBackground());
		g2.fillOval(0, 0, super.getWidth(), super.getHeight());
		super.setContentAreaFilled(false);
		g2.setColor(Color.white);
		Font myFont = new Font("MV Boli",Font.BOLD,40);

		this.setFont(myFont);
		this.setForeground(Color.WHITE);
		this.setFocusPainted(false);
		super.paintComponent(g);
		
	}
	
	public void paintBorder(Graphics g){
//		super.paintBorder(g);
		Graphics2D g2 = (Graphics2D) g;
		g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
		g.setColor(Color.gray);
		g.drawOval(0, 0, super.getWidth() , super.getHeight());
	}
	
	
	
	@Override
	public void mouseClicked(MouseEvent e) {
		// TODO Auto-generated method stub
//		this.setBackground(Color.white);
	}

	@Override
	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		this.setBackground(new Color(65, 201, 252, 200));
	}

	@Override
	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub
		this.setBackground(new Color(65, 201, 252, 50));
	}

	@Override
	public void mouseEntered(MouseEvent e) {
		// TODO Auto-generated method stub
		this.setBackground(new Color(65, 201, 252, 150));
	}

	@Override
	public void mouseExited(MouseEvent e) {
		// TODO Auto-generated method stub
		this.setBackground(new Color(65, 201, 252, 50));
	}

}


泡面大减价
浏览 1906回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java