2014-04-19 3 views
0

현재 내 캔버스에 선과 원 (바퀴처럼 애니메이션이 됨)이 그려지려고합니다.GridLayout없이 JPanels를 사용하여 JFrame에 원과 선 그리기

WheelAnimation()이라는 생성자가 있습니다. 이 생성자 내에서

, 나는이 두 가지 구현 클래스를 가지고, 첫 번째는 원이다

class CircleComponent extends JComponent 
{ 
    private static final long serialVersionUID = 1L; 

    public void paintComponent(Graphics g) 
    { 
     Graphics2D g2 = (Graphics2D) g; 
     for(int i = 0; i < 200; i++) 
     { 
      // repaint(); 
      g2.fillOval(i, 50, 50, 50); 
     } 
    } 
} 

final CircleComponent component2 = new CircleComponent(); 
panel.add(component2); 

그리고 이것은 원 아래에 선을 그립니다 :

class LineComponent extends JComponent 
{ 
    public void paintComponent(Graphics g) 
    { 
     Graphics2D g2 = (Graphics2D) g; 
     g2.drawLine(120, 120, 380, 120); 
    } 
} 

final LineComponent component = new LineComponent(); 
panel.add(component); 

나는 setLayout를 사용하는 경우 방법 : panel.setLayout(new GridLayout(1, 1));

두 항목을 표시 할 수 있습니다 (형식은 좋지 않습니다). 나는 setLayout 방법을 제거하는 경우

http://puu.sh/8fm9B/4f1dc1d0e5.png

는하지만, 아무것도 동일 머물고 좌표에도 불구하고, 내 프레임에 나타 없습니다.

왜 이런 일이 일어 났는지 누군가에게 알려주고 그 레이아웃을 설정하고 표시하도록 권장 할 수 있습니까?

답변

0

두 항목을 표시 할 수 있습니다 (형식은 좋지 않습니다).

레이아웃 관리자를 사용하면 패널에 추가 된 구성 요소의 크기와 위치를 설정해야합니다.

레이아웃 관리자를 사용하지 않으면 응용 프로그램 코드가 각 구성 요소의 크기와 위치를 설정해야합니다.

+0

그 부분을 이해합니다 (레이아웃 관리자는 각 구성 요소가 프레임 내에 배치되는 위치를 결정합니다). 그러나 레이아웃 관리자를 제거하면 아무 것도 나타나지 않습니다. – theGreenCabbage

+0

@ theGreenCabbage, 내 대답은 읽었습니까 ??? 각 구성 요소의 크기와 위치를 설정 했습니까 ??? – camickr

+0

사과! 나는'component'와'component' 둘 다'.setBounds()'를 사용했지만 아무 것도 나타나지 않습니다. 나는 그것을 잘못하고 있다고 생각한다. – theGreenCabbage