2012-01-14 9 views
7

javaを初めて使用していて、サイトにまったく新しいものです。私はJLabelをBorderLayoutの中央パネルに追加しました。私はJLabelをパネルの中央に置くことを望みます。 setAlignmentXは動作しますが、setAlignmentYは機能しません(ラベルはパネルの上部に表示されます)。私もlabel.setVerticalAlignment(CENTER)を試してみましたsetAlignmentY JLabelをBorderLayoutにセンタリングしない

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); 

;,無駄に:ここではコードです。私は、APIとJavaチュートリアル、このサイトとGoogle検索で答えを探しました。ありがとう! Javaで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); 

} 

1:

答えて

17

あなたが接近していた、これを試してみてください。私が正直であれば私の目を突きつけたい

+2

アライメントのための+1、コンストラクタでも利用可能。眼の外傷は-0.01であった。 :-) – trashgod

+1

BoxLayoutを保持する方法はありますか?BoxLayoutに追加されるコンポーネントは、BorderLayoutの中央パネルの中央に垂直に配置されますか? – Jehu

+0

ここには読んでいる:http://docs.oracle.com/javase/tutorial/uiswing/layout/box.html 私はそれが痛いですが、私はそれがちょうどコードでハックするよりも理解するのに役立つと思うことをありがとう –

0

私は垂直方向に中心を合わせようとしましたが、JButtonが伸びていました。手を加えた後、私はこの作品が見つかりました:

もちろんJLabelでもうまく動作します。

関連する問題