관리 메뉴

오버플로

[Java] JOptionPane / JDialog 본문

Java

[Java] JOptionPane / JDialog

NACO 2021. 8. 22. 13:56

 1. JOptionPane 

- 간단한 Dialog을 제공하는 클래스 (InputDialog, MessageDialog, ConfirmDialog)

  • InputDialog : 사용자가 입력한 값을 받기위한 창
     >> String input = JOptionPane.showInputDialog(“메시지”);
  • MessageDialog : 간략한 정보를 제공하기 위한 창
    >> JOptionPane.showMessageDialog(부모컴포넌트, “메시지”);
  • ConfirmDialog : 사용자의 의중을 물어볼 수 있는 창
    >> int flag = JOptionPane.showConfirmDialog(부모컴포넌트,”메시지”)

 2. JDialog 

- 메인 창에서 부가적인 정보를 제공하기 위한 자식 창

- swing에는 JDialog(window component/생성자 있음)를 제공, AWT에서는 Dialog(생성자x)를 제공

- JDialog를 상속 받아 사용함

 >> JDialog는 부모창에서 동작을 해야하므로 has a 관계를 설정 (call by reference)

 >> *modal 설정 : 자식창이 동작했을 때 부모창의 활성화 여부

                        : 자식창이 동작했을 때 부모창을 사용할 수 없음

      *Non modal 설정 : 자식창이 동작했을 때 부모창 사용 가능


# 오늘의 코딩 #

public class UseJDialog extends JDialog implements ActionListener{

	private JButton jbtnClose;

	public UseJDialog(UseJOptionPane ujp) { // 다이얼로그창이 뜨려면 부모가 있어야 함
		super(ujp,"자식창",true); // true 는 modal type에 관한 것! modal로 설정!
		
		jbtnClose = new JButton("닫기");
		JPanel jpCenter = new JPanel();
		jpCenter.add(jbtnClose);
		
		//배치
		add("Center",jpCenter);
		
		//컴포넌트를 이벤트에 등록
		jbtnClose.addActionListener(this);
		
		//부모창의 좌표 얻기! getX(), getY()
		setBounds(ujp.getX(), ujp.getY(), 400, 300);
		setVisible(true);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
	}//UseDialog
	
	@Override
	public void actionPerformed(ActionEvent ae) {
		dispose(); // 버튼 누르면 다이얼로그는 닫기
	}//actionPerformed
	
}//class

- 부모창을 기반으로 JDiaog가 나오게 된다. 

'Java' 카테고리의 다른 글

[Java] Exception Handling  (0) 2021.08.24
[Java] File Dialog  (0) 2021.08.23
[Java] Adapter Class  (0) 2021.08.20
[Java] Menu / Event Handling  (0) 2021.08.19
[Java] MVC Pattern  (0) 2021.08.18
Comments