web-dev-qa-db-ja.com

BorderLayoutを使用して2つのコンポーネントをJPanelに配置する方法は?

基本的に私がしようとしているのは、2つの画像を追加することです。つまり、JPanelの中​​央にSide-By-Sideを追加し、JPanelの右側にJLabelを追加します。そのため、JPanelのレイアウトをBorderLayoutとして設定し、 BorderLayout.CENTERで画像を追加し、BorderLayout.EASTでJLabelを追加します。

JPanel panel = new JPanel();
panel.SetLayout(new BorderLayout(100,100));

panel.add(pic1,BorderLayout.CENTER);
panel.add(pic2,BorderLayout.CENTER);
panel.add(new JLabel("Example"), BorderLayout.EAST);

実際の結果は、写真がJPanelの左以外にあり、JLabelがJPanelの右側にあることです。

ご助力ありがとうございます!

9
Gilad

あなたがする必要があるのは、西と東にそれぞれ1つの画像を追加する別のJPanelを用意することです。次に、そのJPanelをpanelのセンターに追加します。例えば

JPanel p = new JPanel(new BorderLayout());

p.add(pic1,BorderLayout.WEST);
p.add(pic2,BorderLayout.EAST);

panel.add(p,BorderLayout.CENTER);
22
Kakalokia

BorderLayoutは領域ごとに1つのコンポーネントのみを許可します。それらを別の領域に配置します。または、それらを追加のJPanelで囲みます。または、別の LayoutManager を使用します。

4
Tedil