• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaのSwingのレイアウト)

JavaのSwingのレイアウト

このQ&Aのポイント
  • JavaのSwingを学習中ですが、レイアウトの方法がわかりません。
  • 添付画像のようなレイアウトを作りたいです。
  • コードの一部を添付します。

質問者が選んだベストアンサー

  • ベストアンサー
  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.2

import java.awt.*; import javax.swing.*; public class LayoutTest { public static void main(String[] args) { JFrame frame = new JFrame(); JPanel panel = new JPanel(); JTextField searchFiled = new JTextField("テキスト"); String[] comboboxString = {"C", "C++", "Java"}; JComboBox comboBox = new JComboBox(comboboxString); JButton button = new JButton("ボタン"); //ここから4行 panel.setLayout(new BorderLayout()); panel.add(comboBox, BorderLayout.WEST); panel.add(searchFiled, BorderLayout.CENTER); panel.add(button, BorderLayout.EAST); frame.add(panel, BorderLayout.PAGE_START); JPanel redPanel = new JPanel(); redPanel.setBackground(Color.RED); frame.add(redPanel); frame.setSize(700, 500); frame.setLocationRelativeTo(null); frame.setVisible(true); } } やりたい方向に近づいたでしょうか? WESTが左、EASTが右ですね。

newtgecko
質問者

お礼

ありがとうございます。 西と東も間違えていましたね。 panel.setLayout(new BorderLayout());をしないといけないのがわかりました。ありがとうございます。

その他の回答 (1)

  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.1

javax.swing.JPanel は標準で FlowLayout なので、ご質問の要件なら BorderLayout に変更する必要があります。 panel.setLayout(new BorderLayout()); または JPanel panel = new JPanel(new BorderLayout());

newtgecko
質問者

お礼

ありがとうございます。 >javax.swing.JPanel は標準で FlowLayout なので よくわかりました。 Swingのレイアウトに関しては色々と疑問が出ると思うので、何かありましたらまたよろしくお願いします。