テーブルの下に2つのボタンがあります。しかし、1つのボタンは私のテーブルのすべてのスペースをほぼ占有しています。私は2つのボタンの間の列スペースをトリミングしたかった。左のボタンにweight.x = 1
を追加すると、右に押されません。GridBagLayoutを使用してJTableの下の列スペースをトリム
gbc.anchor = GridBagConstraints.FIRST_LINE_START;
gbc.insets = new Insets(20, 10, 0, 0);
gbc.gridx = 0;
gbc.gridy = 0;
JTable tbl = new JTable();
tbl.setPreferredScrollableViewportSize(new Dimension(500, 200));
tbl.setRowHeight(30);
JScrollPane pane = new JScrollPane(tbl);
panelCenter.add(pane, gbc);
gbc.anchor = GridBagConstraints.FIRST_LINE_START;
gbc.gridx = 0;
gbc.gridy = 1;
JButton btnAdd = new JButton("Add");
panelCenter.add(btnAdd, gbc);
gbc.gridx = 1;
gbc.gridy = 1;
gbc.weightx = 1;
gbc.weighty = 1;
JButton btnRemove = new JButton("Remove");
panelCenter.add(btnRemove, gbc);
出力:そのgridwidthプロパティはJTableは2つの列を占有することを可能にするために2に設定されている必要があるのJTableを保持するJScrollPaneで使用
'gridwidth'は私の問題を修正しました。あなたはプロパティの伝播エラーのような例を挙げることができますか?まだそれに遭遇していない。 – Francisunoxx
@Francisunoxx:同じgbc変数とオブジェクトを使用する場合、JScrollPaneを追加した後に 'gbc.gridwidth = 1;'を呼び出さなかった場合、エラーが発生します。今度はすべてのコンポーネントが2のグリッド幅で追加されます。 –
私はどこが間違っているかを見ます。私はユーティリティメソッドを作成して、同じgbcを共有できないようにする必要があります。私はあなたの助けとヒントを評価しました! – Francisunoxx