2016-04-29 14 views
1

以下のコードは、パネルの左下にラベルを追加します。ラベルを設定した位置を使用すると、位置は変わりません。余分なパネルを必要とせずにラベルをパネルの中央の南に置く方法はありますか?パネルの中央の南にラベルを追加しますか?

EDIT:JFrameのはのBorderLayoutを持っており、あなたが中央パネルにラベルのテキスト整列を設定する必要があるようだCENTER

JPanel pnl = new JPanel(); 
pnl.setPreferredSize(new Dimension(500,500)); 
JLabel lbl = new JLabel("label"); 
pnl.setLayout(new BorderLayout()); 
pnl.add(lbl, BorderLayout.SOUTH); 
+0

? JFrameのレイアウトを設定しましたか? –

+1

[getPreferredSize() '](http://stackoverflow.com/q/7229226/230513)を実際にオーバーライドすることを意味するときは' setPreferredSize() 'を使わないでください。 – trashgod

答えて

2

にパネルを追加しますか? もしそうなら、これを試してみてください。

JPanel pnl = new JPanel(); 
pnl.setPreferredSize(new Dimension(500, 500)); 
JLabel lbl = new JLabel("label", SwingConstants.CENTER); //Set text align 
pnl.setLayout(new BorderLayout()); 
pnl.add(lbl, BorderLayout.SOUTH); 
lbl.setBackground(Color.red); 
lbl.setOpaque(true); //Test background 
getContentPane().add(pnl); 

結果:あなたが得た正確に何

Result

+0

はい、JLabelを中央揃え(1+)に設定する必要があります。しかし、第2のパネルは必要ない。ラベルをフレームに直接追加するだけです。 – camickr

+0

ありがとうManh Le! –

関連する問題