实例说明:本例演示奥运匹克运动会的会徽,运行程序,在窗口体上绘制五图案。
关键部分详解:FiveDaisyChainpanel继承了JPanel类,并重写了paint()方法,使用了Graphics2D类的方法实现功能:setStroke()方法设置画笔的粗细;setColor()方法设置图案的颜色,drawOvalI()方法画了圆圈,只有线,没有填充颜色;
代码:
创建Frame框架
public class FiveDaisyChainFrame extends JFrame{
private FiveDaisyChainpanel panel;
public FiveDaisyChainFrame(){
panel = new FiveDaisyChainpanel();
this.add(panel);
showMe();
}
public void showMe(){
this.setTitle("五环图案");
this.setSize(300,300);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new FiveDaisyChainFrame();
}
}
创建Panel面板:
public class FiveDaisyChainpanel extends JPanel{
public void paint(Graphics g){
Graphics2D g2 = (Graphics2D)g; //获得2D的对象
BasicStroke stroke = new BasicStroke(3); //创建宽度是3的画笔对象
g2.setStroke(stroke); //设置画笔对象
g2.setColor(Color.BLUE); //设置颜色
g2.drawOval(30, 40, 60, 60); //绘制第一个圆
g2.setColor(Color.YELLOW);
g2.drawOval(65, 70, 60, 60);
g2.setColor(Color.BLACK); //2
g2.drawOval(100, 40, 60, 60);
g2.setColor(Color.GREEN);
g2.drawOval(135, 70, 60, 60);
g2.setColor(Color.RED); //3
g2.drawOval(170, 40, 60, 60);
}
}