<pre name="code" class="java">
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
/**
* 制作一个圆形的按钮时,需要做两件事: 第一件事是重载一个适当的绘画方法以画出一个圆形。
* 第二件事是设置一些事件使得只有当你点击圆形按钮的范围中的时侯按钮才会作出响应
*/
public class CircleButton extends JButton {
public CircleButton(String label) {
super(label);
// 获取按钮的最佳大小
Dimension size = getPreferredSize();
// size.width = size.height = Math.max(size.width, size.height);
size.width = size.height =20;
setPreferredSize(size);
setContentAreaFilled(false);
this.setBorderPainted(false); // 不绘制边框
this.setFocusPainted(false); // 不绘制焦点状态
}
// 画圆的按钮的背景和标签
protected void paintComponent(Graphics g) {
if (getModel().isArmed()) {