프로그래밍 언어/java

java 사각형 스탬프 랜덤 찍기 프로그램

sw개발자 2021. 2. 16. 23:01
import javax.swing.*;// swing패키지 전체를 불러온다.
import java.awt.*;// awt패키지 전체를 불러온다.

public class practice6 extends JFrame {
    public static final int JLABEL_NUMBER = 20; // 정수형 상수를 필드에 선언을 하며 20이라는 데이터를 넣었다.
    public practice6(){ //practice6이라는 클래스의 생성자이다.
        setTitle("Random Labels");// 제목을 Random Labels이라고 지었다.
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Container container = getContentPane();
        container.setLayout(null);// 배치관리자 없도록했다.
        // 그동안 컴포넌트를 주면 주어진 배치관리자가 위치와 크기를 상대적으로 조율하면서 배치를 했다. 근데 이게 반복문을 이용해서 놓는 것이 좋다 생각
        JLabel [] jLabels = new JLabel[JLABEL_NUMBER];// JLabel클래스배열을 정의하고 선언했다.
        int x, y;// 지역변수 정수형을 선언했다.

        for (int i = 0; i < JLABEL_NUMBER; i++)// 반복문 for문이다. JLABEL_NUMBER = 20이므로 20번 반복!
        {
            jLabels[i] = new JLabel(Integer.toString(i));//JLabel배열 원소 순서대로 접근
            x = (int)(Math.random()*200) + 50;// 반복할때마다 새로 난수 데이터를 저장
            y = (int)(Math.random()*200) + 50;// 반복할때마다 새로 난수 데이터를 저장
            jLabels[i].setLocation(x,y);// 난수에 설정된 정수로 위치좌표를 설정한다.
            jLabels[i].setSize(10,10);// 크기를 10x10으로 설정
            jLabels[i].setBackground(Color.BLUE);// 색을 파란색으로 설정
            jLabels[i].setOpaque(true);
            container.add(jLabels[i]);// 컨테이너 즉 여기서는 콘텐츠팬에 부착
        }

        setSize(300,300);// 콘텐츠 팬은 300x300사이즈로 설정
        setVisible(true);// 화면에 보이도록 설정!
    }
    public static void main(String[] args) {
        new practice6();
    }