자바 Swing에서 컨네이너 삽입 문제입니다..
글쓴이: sadrove / 작성시간: 월, 2004/10/11 - 9:45오후
A클래스와 B클래스가 있습니다.
A클래스는 윈도우 창을 만들고..
B에 있는 버튼을 A클래스에 있는 윈도우 창안에 삽입을 하고 싶은데요..
예를 들어 아래와 같이말입니다..
public class A extends JFrame{
public A(String title){
super(title);
Container cp = getContentPane();
cp.setLayout(new BorderLayout());
B button = new B("test");
cp.add(button);
}
public static void main(String args[]){
A mf = new A("JSplitPane Example");
mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mf.setBounds(10,10,100,100);
mf.show();
}
}public class B extends JFrame{
JButton button;
public B(String title){
Container cp = getContentPane();
cp.setLayout(new BorderLayout());
button = new JButton("Test");
cp.add(button);
}
}
위와같이 하면 될 줄 알았는데..
안되네요..^^;;..
B클래스에 문제가 있는 것 같은데요..
어떤식으로 하면 될지...
p.s 아까 올렸었는데...답변이 없어서 다시 질문을 간략화시켜 올립니다..^^
Forums:


Re: 자바 Swing에서 컨네이너 삽입 문제입니다..
A도 JFrame이고 B도 JFrame인데 JFrame에 JFrame을 더하려니까 안되는 겁니다. JFrame은 top-level container이기 때문에 1개만 있어야 합니다.
B를 JPanel로부터 상속하는 것으로 바꿔보세요.
public B(String title){
Container cp = getContentPane();
cp.setLayout(new BorderLayout());
button = new JButton("Test");
cp.add(button);
}
그러면 위 constructor를
public B(String title) {
super(new BorderLayout());
add(button, BorderLayout.CENTER);
}
로 바꿔주세요.
감사합니다..
감사합니다.. :D
댓글 달기