2
回答
菜鸟求教如何制作一个圆形的按钮
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

求高手帮助怎么制作一个圆形形状的按钮,自己在网上找了一个,但运行后与描述不符,代码如下,求指点

package button;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.geom.*;
public class RoundButton extends JButton{              //圆形按钮制作之圆类
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
        JButton button=new JButton("Jackpot");
        button.setBackground(Color.green);
        JFrame frame=new JFrame();
        frame.getContentPane().setBackground(Color.yellow);
        frame.getContentPane().add(button);
        frame.getContentPane().setLayout(new FlowLayout());
        frame.setSize(150,150);
        frame.setVisible(true);
}


public RoundButton(String label){
super(label);
Dimension size=getPreferredSize();
size.width=size.height=Math.max(size.width,size.height);
setPreferredSize(size);
setContentAreaFilled(false);
}
protected void paintComponent(Graphics g){
if(getModel().isArmed()){
g.setColor(Color.lightGray);
}
else{
g.setColor(getBackground());
}
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);
}
}

运行效果图

举报
顶部