⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 roundbutton.java

📁 主类CNC.java
💻 JAVA
字号:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Shape;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.geom.Ellipse2D;

import javax.swing.JButton;

class RoundButton extends JButton {  //扩展按钮类,使按钮边框画出圆
	public RoundButton(String label) { 
	super(label);  //超类初始化,参数为按钮名字
//	 以下声明把按钮扩展为一个椭圆宽高比为2。 
	Dimension size = getPreferredSize(); 
	size.width = Math.max(size.width, 
	size.height); 
	 size.height = size.width/3;
	setPreferredSize(size); 
	setBackground(Color.ORANGE); 
//	这个调用使JButton不画背景,而允许我们画一个圆的背景。 
	setContentAreaFilled(false); 
	this.addMouseListener(new MouseAdapter(){
		public void mouseEntered(MouseEvent arg0) {	//鼠标进入的效果,为了显示的稍微象按钮	
			setBackground(Color.CYAN);
		}
		public void mouseExited(MouseEvent arg0) {  //鼠标离开后
			setBackground(Color.ORANGE); 
		}
	});
	}//构造结束 
//	 画圆的背景和标签 
	protected void paintComponent(Graphics g) { 
	if (getModel().isArmed()) { 
//	 你可以选一个高亮的颜色作为圆形按钮类的属性 
	g.setColor(Color.MAGENTA); 
	} else { 
	g.setColor(getBackground()); 
	} 
	g.fillOval(0, 0, getSize().width-1, 
	getSize().height-1); 
//	这个调用会画一个标签和焦点矩形。 
	super.paintComponent(g); 
	} 

//	 用简单的弧画按钮的边界。 
	protected void paintBorder(Graphics g) { 
		
	g.setPaintMode();
	g.setColor(Color.blue); 
	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); 
	} 
	
	} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -