2014-12-25 2 views
2

저는 초보자이며 더 많은 객체를 JFrame에 추가하는 방법을 모릅니다. JFrame에 둘 이상의 JPanel 객체를 어떻게 추가 할 수 있습니까? 다음은 내가 시도한 것입니다.자바가 JFrame에 둘 이상의 JPanel 객체를 추가합니다.

도움 주셔서 감사합니다.

public class Init extends JFrame{ 

    public Init(){ 
     super("Ball"); 

     Buttons t = new Buttons(); 

     JumpingBall b1 = new JumpingBall(); 
     JumpingBall b2 = new JumpingBall(); 

     t.addBall(b1); 
     t.addBall(b2); 

     add(b1); 
     add(b2); 


     setSize(500,500); 
     setResizable(false); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     setLocationRelativeTo(null); 
    } 

} 
+0

레이아웃을 사용해야합니다. 읽기 : http://docs.oracle.com/javase/tutorial/uiswing/layout/ – Ivan

+0

질문은 무엇입니까? –

답변

1

JumpingBallJPanel으로 확장된다고 가정하면 여기에 자바 레이아웃 관리자 (Link)가 있습니다.

JFrame의 기본 LayoutBorderLayout이며 구성 요소를 추가 할 위치를 지정하지 않은 경우 BorderLayout는 기본적으로 중앙에 넣어 것입니다. BorderLayout에는 같은 영역에 하나 이상의 구성 요소가있을 수 없습니다. 따라서 귀하의 예에서는 프레임에 두 번째 JumpingBall 패널 만있을 것입니다. 가운데에 하나 이상의 구성 요소가 있기를 원하면 JPanel을 만들고 다른 구성 요소를 사용하여 해당 구성 요소를 추가해야합니다. 일반적인 세 ​​가지 레이아웃은 BorderLayout, FlowLayoutGridLayout입니다. 위의 제공된 링크를 통해 구성 요소 배치 방법을 확인하십시오.

1

당신은 add 방법을 사용하여 JFrameJPanel 객체의 수를 추가 할 수 있습니다. 하나만 표시되는 경우 레이아웃 옵션을 변경하거나 레이아웃 관리자 (자세한 내용은 here 참조)를 사용해야 할 수 있습니다.

+0

thans .. 나는 그것을 읽을 것이다 – TomP

+0

좋다, 듣기 좋다. 귀하의 질문에보다 완벽하게 대답한다고 생각하시는 답변이 무엇이든 최선을 다해 투표하는 것을 잊지 마십시오. –

1

서로 겹치기 때문에 하나만 표시됩니다. 패널 구성 요소에 setbound(x,y,x1,y1)을 입력하면 위치에 패널이 표시됩니다.

또는 setLayout(new FlowLayout());을 사용하면 구성 요소를 다른 구성 요소에 순서 지정하여 서로를 재정의하지 않도록 할 수 있습니다.