2010-02-26 5 views
0

내 GUI에 원형 개체를 표시하려고하는데 순환 개체에 몇 개의 레이블이 있어야하므로 원 개체가 JPanel을 확장해야한다고 생각했습니다. 누구든지 원형 JPanel을 만드는 방법을 알고 있습니까? 또는 타원을 칠하고 소수 JLables를 타원의 중앙에 배치하는 JPanel은 최소한입니까?원형 JPanel 스윙

감사

+0

원형 패널이란 무엇입니까? 원을 렌더링하고 싶습니까? 아니면 구성 요소를 원으로 배열해야합니까? –

+0

안녕하세요. 질문을 업데이트했습니다. 원을 렌더링하고 가운데에 2 개의 JLabel을 쌓아 놓고 싶습니다 – Aly

답변

7

paintComponent 원, 서브 클래스 JPanel 페인트 및 재정의하려면 :

public class CirclePanel extends JPanel { 

    @Override 
    protected void paintComponent(Graphics g) { 
     g.drawOval(0, 0, g.getClipBounds().width, g.getClipBounds().height); 
    } 
} 

은 다음과 같습니다

:

alt text http://img246.imageshack.us/img246/3708/so2343233.png

레이블을 배치하려면, 당신은 GridBagLayout을 사용할 수 있습니다, 당신이 원하는 바입니다.

오라일리에서 책 스윙 해킹에 91,363,210
CirclePanel panel = new CirclePanel(); 

panel.setLayout(new GridBagLayout()); 

GridBagConstraints gc; 

gc = new GridBagConstraints(); 
gc.gridy = 0; 
panel.add(new JLabel("Label 1"), gc); 

gc = new GridBagConstraints(); 
gc.gridy = 1; 
panel.add(new JLabel("Label 2"), gc); 

alt text http://img694.imageshack.us/img694/4013/so23432332.png

+0

타원의 중심에 레이블을 추가 할 수 있습니까? – Aly