프로그래밍 언어/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();
} // 메인메소드 즉 프로그램 실행부분이다.
}