私はJavaのスイングにはまだまだ慣れていないし、そのトリックを学ぼうとしていますが、フレーム内の2つのJPanelのアライメントには苦労しています。下のスクリーンショットを見ると、私の列名JPanelの配置とその下のJPanelの配置が正しく整列していません。2つのJPanelを垂直に並べる方法は?
以下は私のコードです。
JPanel columns = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.weighty = 1.0;
gbc.weightx = 1.0;
gbc.fill = GridBagConstraints.VERTICAL;
gbc.insets = new Insets(5, 5, 5, 5);
gbc.anchor = GridBagConstraints.VERTICAL;
text = "<html><b>Action</b></html>";
JLabel label_action = new JLabel(text);
columns.add(label_action, gbc);
columns.setLayout(new GridBagLayout());
JPanel values= new JPanel(new GridBagLayout());
values.setBorder(BorderFactory.createRaisedBevelBorder());
gbc.weighty = 1.0;
gbc.weightx = 1.0;
gbc.fill = GridBagConstraints.VERTICAL;
gbc.insets = new Insets(5, 5, 5, 5);
gbc.anchor = GridBagConstraints.VERTICAL;
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<String>();
model.addElement("click");
model.addElement("Input Keys");
final JComboBox<String> comboBox1 = new JComboBox<String>(model);
AutoCompleteDecorator.decorate(comboBox1);
comboBox1.setPreferredSize(new Dimension(200, 22));
values.add(comboBox1, gbc);
values.setLayout(new GridBagLayout());
setLayout' 'に対するすべての呼び出しを削除します。すでにJPanelをレイアウト(具体的にはGridBagLayout)で作成しています。新しいレイアウトを設定すると、以前に指定したすべての制約が破棄されます。 – VGR
両方のJPanelからsetLayoutを削除すると、コンパイルエラーが発生します。スレッド「AWT-EventQueue-0」の例外java.lang.IllegalArgumentException:不正なアンカー値 – Naseem
グリッドの行ゼロのタイトルを持つ単一のJPanelを使用する必要があります。 – FredK