[JAVA] Window 예제

정은아·2022년 8월 5일
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자를 그리며 네모를 만들었습니다. 저는 많이 어려웠습니다

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글