- ベストアンサー
JavaのSwingのレイアウト
- JavaのSwingを学習中ですが、レイアウトの方法がわかりません。
- 添付画像のようなレイアウトを作りたいです。
- コードの一部を添付します。
- みんなの回答 (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が右ですね。
その他の回答 (1)
- Ogre7077
- ベストアンサー率65% (170/258)
javax.swing.JPanel は標準で FlowLayout なので、ご質問の要件なら BorderLayout に変更する必要があります。 panel.setLayout(new BorderLayout()); または JPanel panel = new JPanel(new BorderLayout());
お礼
ありがとうございます。 >javax.swing.JPanel は標準で FlowLayout なので よくわかりました。 Swingのレイアウトに関しては色々と疑問が出ると思うので、何かありましたらまたよろしくお願いします。
お礼
ありがとうございます。 西と東も間違えていましたね。 panel.setLayout(new BorderLayout());をしないといけないのがわかりました。ありがとうございます。