성장 일기/쌍용교육센터 / / 2023. 1. 4. 10:52

0104/Swing Component

 

쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
내용에 대한 소스 코드는 https://github.com/2jaehoon/ssangyonng.git 에 올려두었습니다.

 

WindowEvent

WindowEvent는 사용자가 윈도우를 조작하면 발생되는 Event이다.

대표적인 동작은 닫기이다.

 

Adapter class

XxxAdapter class는 이벤트 리스너가 추상 메서드를 하나 이상 가지고 있다면

사용의 편의성을 위해서 미리 인터페이스의 추상 메서드를 모두 구현하여 만들어둔 클래스이다.

구현 인터페이스의 모든 추상 메서드를 Override를 해준다.

오버라이딩된 추상 메서드는 일반 메서드로 변환 되고 구현의 강제성이 없다.

Adapter 클래스를 상속받는 클래스는 is a가 되어 필요한 method만 Override 할 수 있다.

 

Dialog

Dialog는 부모창에서 동작하는 자식 창이다.

부모창에서 제공하는 기능 외의 부가적인 기능을 제공하기 위한 창이다.

부모 창은 Frame으로 주 기능을 제공하고

자식은 Dialog로 부가적인 기능을 제공한다.

 

자식창이 동작 했을 때 부모창을 선택할 수 없도록 하는 기능은 modal이라 하고

자식창이 동작 했을 때 부모창을 선택할 수 있도록 하는 기능은 nan modal이라 한다.

Dialog는 Window Component이므로 Frame과 사용법이 동일하고

BorderLayout을 적용하고 있다.

 

Dialog는 setVisible 전에 이벤트를 등록해야만 정상동작을 수행한다.

 

JDiglog는 기본생성자를 제공하기 떄문에 부모창이 없어도 Dialog를 제공할 수 있다.

 

종료처리로는 2가지가 있다. Window Event로 종료하거나

setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); 를 사용하면 Dialog를 종료할 수 있다.

 

FileDialog

FileDialog는 사용자가 파일을 선택하여 추후 작업을 수행할 수 있는 자식 창이다.

java.awt 패키지에서 제공하는 window component이다.

constant에 의해 열기, 저장 모드로 사용할 수 있다.

사용법은 아래와 같다.

//1. 생성
FileDialog fd = new FileDialog(프레임객체(부모), "타이틀바 내용", 모드);

//2. 가시화
fd.setVisible(true);

//3. 폴더 경로 얻기 - 사용자가 선택한 파일이 있는 경로
String path = fd.getDirectory();

//4. 파일명 얻기
String file = fd.getFile();

 

JOptionPane

JOpthonPane은 자주 사용하는 다이얼로그를 미리 만들어 두고 제공하는 클래스

InputDialog, MessageDialog, ConfirmDialog로 3가지가 있는데 아래와 같을 때 사용한다.

InputDialog는 사용자에게 입력값을 받을 때

MessageDialog는 사용자에게 정보를 제공할 때

ConfirmDialog는 사용자의 의견을 물어볼 때 

사용법은 아래와 같다.

String msg = JOptionPane.showInputDialog("메시지");
JOptionPane.showMessageDialog(부모컴포넌트, "메시지");
int value = JOptionPane.showConfirmDialog(부모컴포넌트, "메시지"); //예0/아니오1/취소2

 

배우고 느낀점

여러 컴포넌트들을 사용하면서 오버라이딩된 메서드와 

is a 관계 has a 관계에 대해 조금 더 알게 되었다.

아직 잘 매개변수 다형성에 대한 지식이 부족한 거 같아서

이 부분을 조금 더 공부를 하면 배우면서 수월하고

더 이해가 빠를 것 같다. 

 

 

'성장 일기 > 쌍용교육센터' 카테고리의 다른 글

0106/예외 처리, Stream  (0) 2023.01.06
0105/Font, 예외 처리  (0) 2023.01.05
0103/Swing Component  (0) 2023.01.03
0102/Swing Component  (0) 2023.01.02
1229/AWT, Swing  (0) 2022.12.29
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유