刚学习了一段时间的java,练练手写了一个随机生成几何图形序列的窗口。
具体代码如下:
import java.awt.*;
import java.util.Random;
public class geometry_frame extends Frame
{
public void show_frame()
{
geometry_frame f= new geometry_frame();
f.setTitle("随机图形窗口(最小化再打开后能更新图形序列)");
f.setSize(1000,1000);
f.setLocation(300,200);
f.setResizable(false);//设置窗口大小固定不变
f.setBackground(Color.lightGray);
f.setVisible(true);
System.out.println("4");
}
public void paint(Graphics g)
{
System.out.println("2");
//super.paint(g);
int i,j;
for(j=2;j*10<1000;j=j+2)
{
int k = (int)(Math.random()*3);
for(i=1;i*10<990;i=i+2)
{
int[] x = {0,5,10,0};
int[] y = {10,0,10,10};
x[0]=x[0]+i*10;
x[1]=x[1]+i*10;
x[2]=x[2]+i*10;
x[3]=x[3]+i*10;
y[0]=y[0]+j*10;
y[1]=y[1]+j*10;
y[2]=y[2]+j*10;
y[3]=y[3]+j*10;
switch(k)
{
case 0:
g.setColor(Color.green);
g.drawRect(i*10,j*10,10,10);//画矩形,大小为10*10,隔10个画一个
break;
case 1:
g.setColor(Color.red);
g.drawOval(i*10,j*10,10,10);//画圆,直径为10
break;
case 2:
g.setColor(Color.blue);
g.drawPolyline(x,y,4);//画三角形
break;
}
}
}
}
public static void main(String[] args)
{
System.out.println("1");
new geometry_frame().show_frame();
System.out.println("3");
}
}
这段代码产生的效果为:
点击最小化后,图形的序列会发生变化,当然,变化只发生在y轴上。
这里我也发现了该程序的执行顺序,先进入main,在main中执行show_frame,main执行完毕之后再执行paint。由dos窗口的数字输出顺序可以看出。
paint不在main中也能执行,并且能找到创建的小组件,在网页小程序applet和窗口frame中都能用。
本人java新手,希望能与大家一起讨论,一起进步!