자바 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
댓글 달기