자바 Swing에서 컨네이너 삽입 문제입니다..

sadrove의 이미지

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 아까 올렸었는데...답변이 없어서 다시 질문을 간략화시켜 올립니다..^^

meteors의 이미지

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);
}
로 바꿔주세요.

sadrove의 이미지

감사합니다.. :D