接上篇,上篇是将直线画在一块画布上的。 但是,paint()方法其实是每一个组件都包含的方法,故可直接在窗口中画图。 本篇,以同心圆为例,在窗口中直接画同心圆。 此同心圆从窗口的中心位置开始,向外辐射,直到布满整个窗口为止。 其完整代码如下: import java.awt.*; import javax.swing.*; public class Draw_Circle extends JFrame{ private static final longserialVersionUID = 1L; public Draw_Circle(){ super("同心圆"); this.setBounds(200, 200, 600, 600); this.setVisible(true);//该方法会调用子类的paint重写方法,画出相应paint中的图形 } public void paint(Graphics g){ int x0=getSize().width/2;//圆的最左上角x坐标 int y0=getSize().height/2;//圆的最左上角y坐标 for(int r=0;r<getSize().height/2;r+=10){ g.setColor(getRandomColor());//给画笔设置随机数颜色 g.drawOval(x0-r,y0-r, r*2, r*2); //画圆,前两个参数是圆的xy坐标,xy坐标值想等为同心圆,否则不是。后面两个参数是宽和高,若宽高相等则为圆,否则为椭圆 } } public Color getRandomColor(){//返回一个随机的颜色 Color color=new Color((int)(Math.random()*256), (int)(Math.random()*256),(int)(Math.random()*256)); return color; } publicstaticvoid main(String args[]){ new Draw_Circle(); } } 其运行结果如下: |
|
来自: pythonjava学习 > 《待分类》