프로그래밍 언어/java

JAVA 더블클릭시, 도망가는 라벨 프로그램

sw개발자 2021. 2. 2. 18:09
import javax.swing.*;                                           // javax.swing내에서 모든 클래스 import
import java.awt.*;                                              // java.awt내에서 모든 클래스 import
import java.awt.event.MouseAdapter;                             // java.awtjava.awt.event.MouseAdapter 클래스 import
import java.awt.event.MouseEvent;                               // java.awt.event.MouseEvent 클래스 import

public class JavaProject1_3 extends JFrame {                    // JFrame클래스 내에 있는 메소드,필드를 사용하기 위해서 JavaProject1_3 클래스에 상속을 받았다.
    private JLabel jLabel = new JLabel("2");               // JLabel "2"라는 텍스트를 가진 라벨 객체 생성

    public JavaProject1_3(){                                    // JavaProject1_3 생성자끝
        setTitle("클릭 연습용 응용프로그램");                      // 제목을 클릭 연습용 응용프로그램 라고 한다.
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);         // x(닫기창)을 누르면 프로그램이 종료하도록하는 코드이다.
        Container contentPane = getContentPane();               // // contentPane을 불러온다.
        contentPane.setLayout(null);                            // 배치관리자를 삭제했다. 배치관리자는 컴포넌트 부착할때 해당 컴포넌트 크기와 위치를 조율한다. 내가 크기와 위치를 조율해야

        jLabel.setSize(15,15);                     //배치관리자를 삭제했으니 프로그래머가 컴포넌트 크기
        jLabel.setLocation(100,100);                        // 위치를 설정해줘야한다.
        contentPane.add(jLabel);

        jLabel.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) { // 익명클래스를 사용했다. 여기서는 마우스 어탭터 클래스로 하나하나 모두 오버라이딩할 필요가 없어졌다.
                int x = (int)(Math.random()*450)+1;                 // 1~450까지 난수 생성
                int y = (int)(Math.random()*450)+1;                 // 1~459까지 난수 생성
                jLabel.setLocation(x,y);                            // 두개의 난수를 위치로 넣는다.
            }
        });

        setSize(500, 500);                              // 창의 크키는 가로 500픽셀, 세로 500픽셀
        setVisible(true);                                             // 창이 보이도록 설정한다.
    }


    public static void main(String[] args) {
        new JavaProject1_3();
    }   // 메인메소드 즉 프로그램 실행부분이다.
}