2008년 7월 19일 토요일

java JDialog Example

JDialog 의 소유자 설정

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
class mainFrame extends JFrame
{
public mainFrame(){
this.setSize(300,200);

this.setVisible(true);
new parentDLG();
}
public static void main(String[] ar){
new mainFrame();
}
}
class parentDLG implements MenuListener{
Container con;
mainFrame frame;
JDialog dlg = new JDialog(frame, true);
JMenu menu = new JMenu("메뉴");
JEditorPane edPane = new JEditorPane();
JScrollPane jsp = new JScrollPane(edPane);
public parentDLG(){
dlg.getContentPane().add(jsp);
JMenuBar jmb = new JMenuBar();
jmb.add(menu);
dlg.setJMenuBar(jmb);
menu.addMenuListener(this);
edPane.setContentType("text/html");
edPane.setText("<html><body>hi</body></html>");
dlg.setSize(200,200);
dlg.setVisible(true);
dlg.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
}
public void menuCanceled(MenuEvent e){}
public void menuDeselected(MenuEvent e){}
public void menuSelected(MenuEvent e){

if(e.getSource() == menu){

new subDLG(this.dlg);

}
}
}

class subDLG
{

JDialog ddd;
JDialog subdlg = new JDialog(ddd, true); //// 소유자가 parentDLG다이얼로그이어야하고, parentDLG 다이얼로그 앞쪽에 보여져야함..

//this.dlg를 생성자가 받아서 사용하면 에러는 사라지는데 이것이 원하시는 것인지는 모르겠습니다.
public subDLG(JDialog dlg) {

ddd=dlg;


subdlg.getContentPane().add(new JButton("aaa"));
subdlg.setSize(100,100);
subdlg.setVisible(true);
subdlg.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
}
};


문]
간단하게 아래 소스를 설명하자면 JFrame -> JDialog -> JDialog 의 관계로 JDialog 소유자 관계가 설정되어있습니다.
근데 문제가..... 두번째 JDialog 에서 세번째 JDialog 를 불러들일때 오류가 발생합니다.
부모다이얼로그가 자식다이얼로그를 new subDLG() 로 호출을 하면.....
자식다이얼로그인 subDLG 클래스가 호출되는데 이때 이 자식다이얼르고의 소유자를 부모다이얼로그로 설정할때 에러가 발생하고있는데 이부분을 어떻게 처리해야하는지 모르겠습니다.....;;
에러좀 잡아주세요.

댓글 없음:

댓글 쓰기

-


Sidewinder


World


FishMusic


LaughingBaby