Dialog는 자식 창.
프로그램에서 부가적인 기능을 제공해야 할 때.
Window Component (하위 컴포넌트를 배치하여 사용자에게 보여줄 때 사용)
BorderLayout이 기본 레이아웃
이벤트처리 method는 반드시 setVisible 전에 설정해야 한다.
Frmae : 주기능
Dialog : 부가적인 기능
부모창(Frame)을 통해서 자식창(Dialog)을 열어준다.
자식창이 동작할 때 부모창이 선택되지 않는 것을 modal이라고 한다.
자식창이 동작할 때 부모창이 선택되는 것을 non-modal이라고 한다.
Frame을 사용하는 것과 같다.
상속하여 사용
public class UseDialog extends JDialog{
// 이벤트와 관련있는 컴포넌트 선언
생성자(윈도우컴포넌트){//부모가 없는 Dialog생성
super(윈도우컴포넌트)//부모가 부모가 없는 Dialog생성
컴포넌트 생성, 배치, 이벤트 등록
}
}
OS에서 제공하는 파일을 선택하기 위한 윈도우 컴포넌트.
java.awt패키지에서 제공.
1. 객체 생성
FileDialog fd = new FileDialog(this, "타이틀 바에 들어갈 내용" 모드);
//모드는 열기 모드와 저장 모드가 있다.
//열기 : FileDialog.LOAD
//저장 : FileDialog.SAVE
2. 사용자에게 보여주기
fd.setVisible(true);
3. 경로얻기
String path = fd.getDirectory();
4. 파일명 얻기
String name = fd.getFile();
swing에 많이 사용하는 Dialog를 미리 구현하여 제공하는 클래스
InputDialog, MessageDialog, ConfirmDialog 3가지를 제공.
String data = JOptionPane.showInputDialog("메시지", "기본값");
JOptionPane.showMessageDialog("메시지");
int data = JOptionPane.showInputDialog("메시지");
//int => 0 : 예, 1 : 아니오, 2 : 취소
//예: JOptionPane.OK_OPTION, 아니오: JOptionPane.NO_OPTION,
//취소: JOptionPane.CANCEL_OPTION