2012-01-14 4 views
7

자바가 처음이며 사이트에 새로운 점. BorderLayout의 가운데 패널에 JLabel이 추가되었습니다. JLabel을 패널 중앙에 배치하고 싶습니다. setAlignmentX는 작동하지만 setAlignmentY는 작동하지 않습니다 (레이블이 패널 상단에 나타남). 코드는 다음과 같습니다.setAlignmentY BorderLayout에서 JLabel을 중심에 두지 않음

centerPanel = new JPanel(); 
centerPanel.setLayout(new BoxLayout(centerPanel,BoxLayout.Y_AXIS)); 

JLabel label = new JLabel("This should be centered"); 
label.setAlignmentX(Component.CENTER_ALIGNMENT); 
label.setAlignmentY(Component.CENTER_ALIGNMENT); 
centerPanel.add(label); 

contentPane.add(centerPanel, BorderLayout.CENTER); 

나는 label.setVerticalAlignment (CENTRE)도 사용하지 않았습니다. API 및 Java 자습서,이 사이트 및 Google 검색을 통해 답변을 찾았습니다. 감사!

답변

17

당신이 가까웠다이 시도 : 자바 GUI 프로그래밍의 많은 기쁨의

public static void main(String[] args) 
{ 
    JFrame contentPane = new JFrame(); 
    JPanel centerPanel = new JPanel(); 
    centerPanel.setLayout(new BorderLayout()); 

    JLabel label = new JLabel("This should be centered"); 
    label.setHorizontalAlignment(SwingConstants.CENTER); 
    centerPanel.add(label, BorderLayout.CENTER); 

    contentPane.add(centerPanel, BorderLayout.CENTER); 
    contentPane.pack(); 
    contentPane.setVisible(true); 

} 

하나. 나는 정직하다면 차라리 눈을 찌른다.

+2

맞춤을 위해 +1 또한 생성자에서 사용할 수 있습니다. 눈 외상은 -0.01입니다. :-) – trashgod

+1

BorderLayout의 가운데 패널 중앙에 BoxLayout에 수직으로 추가 된 컴포넌트로 BoxLayout을 유지할 수 있나요? – Jehu

+0

여기를 읽으십시오 : http://docs.oracle.com/javase/tutorial/uiswing/layout/box.html 고맙다고 생각하지만 코드를 해킹하는 것보다 이해하는 데 도움이 될 것이라고 생각합니다. –

0

나는 센터를 JButton에 수직으로 정렬 시키려고했지만 스트레칭을했다. 조롱 후에 나는이 작품을 발견 :

물론 JLabel에서도 잘 작동합니다.

관련 문제