package ja_0804;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Window;
public class Window_1 extends Frame {
Window[] win = new Window[300];
Color[] color = { Color.red, Color.yellow, Color.green};
int x, y;
public Window_1(String str)
{
super(str);
for (int i = 0; i < 300; i++)
{
win[i] = new Window(this);
win[i].setBackground(color[i%3]);
Label lbl = new Label(i + "번 윈도우");
if(i<win.length/5)
{
if((int)(i/10)%2==0 )
{
x +=10;
y +=10;
}
else
{
x +=10;
y -=10;
}
}
else if(i<win.length/5*2)
{
if((int)(i/10)%2==0)
{
x +=10;
y +=10;
}
else
{
x -=10;
y +=10;
}
}
else if(i<win.length/5*3)
{
if((int)(i/10)%2==0 )
{
x -=10;
y -=10;
}
else
{
x -=10;
y +=10;
}
}
else if (i<win.length/5*4)
{
if((int)(i/10)%2==0 )
{
x -=10;
y -=10;
}
else
{
x +=10;
y -=10;
}
}
else
{
if((int)(i/10)%2==0 )
{
x +=10;
y +=10;
}
else
{
x +=10;
y -=10;
}
}
win[i].add(lbl);
win[i].setBounds( x + 150 , 150 + y, 100, 100);
win[i].setVisible(true);
}
setLocation(90, 90);
setVisible(true);
}
public static void main(String[] args) {
new Window_1("윈도우");
}
}
이 소스를 코딩하면 w자로 움직이며 네모를 그리고 다시 한 줄 그려집니다.
이 소스는 어떻게 만들면 될까요? 배열 win에 [300]이라는 공간을 준 후,
for문에도 300의 범위를 만들어줍니다. 그 후, if조건문으로 각각 5등분 하여 그려질 점을 찾습니다. 그리고 10단위에서 홀수일 때는 x축과 y축의 값이 오르고, 짝수일 때는 x축의 값은 증가, y축의 값은 감소하며 W자를 그리며 네모를 만들었습니다. 저는 많이 어려웠습니다