본문 바로가기
🚗 Major Study (Bachelor)/🟠 JAVA Programming

Swing, WindowDestroyer, WindowAdapter(JAVA 13.2)

by UKHYUN22 2021. 12. 16.
728x90

 

Basic Swing Detail

 

 


import javax.swing.JFrame
JFrame으로 오브젝트를 생성하고 setSize를 통해 사이즈를 설정해준다. Label을 윈도우 위에다가 올려주게 된다.
getContentPane이라는 것이 있는데 Window에 담는 ContentPane을 하고 add를 통해 하나씩 담게 된다.
WindowDestroyer를 통해 윈도우 창을 닫게 될때의 이벤트를 받게 된다.
addWindowListener를 통해서 WindowDestroyer를 JFrame과  연결시킨다. setVisible(true)를 통해서 보여줘라 라는 것이 된다.

 

 


myWindow에서 이벤트가 발생하면 myListener한테 가라는 것

 


WindowDestroyer 클래스에서 WindowAdapter를 extends 한다.
windowClosing 메소드에서 이벤트가 발생하면 빠져나가라라는 함수.

 


WindowAdapter에는 Handler에 해당하는 여러 메소드가 존재한다.
그 중 우리는 오른쪽 위의 닫는 버튼을 누르면 이벤트가 시행되는 것에만 관심이있고
그것만 구현한 것이다.  windowClosing 만 관심이 있기 때문에 해당 메소드만 구현하면 된다.

 


Screen Object
window의 resolution은 Pixel로 정의가 된다

 


setVisible은 true false로 설정이 된다.

 

 


extends JFrame이라는 것 다르다.
아까는 JFrame에 해당하는 오브젝트를 만들었지만 이번에는 Extends를 해서 Constructor 안에서 setSize와 getContentPane을 진행한다는 것이 아까와 차이점이 된다.

 

 


Demo에서 setVisible을 두 번 시행해서 두 개의 윈도우가 만들어지도록 구현함

 

 


JFrame Window
JLabel을 만들어서 getContentPane에다가 add를 하게 된다

 

 


SecondWindow(window title이 추가되고 contentPane의 이름이 변경됨)

 

 


아까와 다른점!!! extend JFrame을 한 것은 동일
getContentPane에 대한 오브젝트를 contentPane이라고 생성을 해준 것이 차이점!
윈도우에 title을 붙이기 위해 setTitle을 진행했다.
addWindowListener에 바로 new WindowDestroyer를 넣었다.

 

 


SecondWindow(Color customColor) 컨스트럭터도 있다.
Color를 지정하는 것을 파라미터로 받는 또 다른 컨스턱터도 정의되어 있다.

 

 


두 개의 Window를 만드는데 첫번째는 Default 컨스트럭터로 만들고 두 번째는 
Color.PINK를 파라미터로 하는 컨스트럭터를 호출하여 창의 색이 다른 두 개의 윈도우를 만들었다.