フォームにGBレイアウトを使用しています。現在、2つの行があり、それぞれ6つの要素で構成されています(最初の行にはラベル、2番目のテキストフィールドがあります)。私の問題は、X 5 Y 1に表示されるべき要素がX 6 Y 0に表示されることです。私が作っている間違いを教えてください。Java Gridbag missalign - 最初の行に表示される2行目の最後のセル
あなたはおよそGridBagConstraints
オブジェクト
con.add(txtPresence);
を忘れてしまったあなたの最後のコンポーネントを追加する
アドオン(コンポーネント部品、オブジェクト制約)
を呼び出す必要がGridBagLayout
を使用し
public GUI() {
super("Bla");
GridBagLayout layout = new GridBagLayout();
setLayout(layout);
GridBagConstraints gbc = new GridBagConstraints();
[enter image description here][1]gbc.insets = new Insets(10,10,10,10);
Container con = getContentPane();
panel1 = new JPanel();
labBrawn = new JLabel("Brawn");
gbc.gridx = 0;
gbc.gridy = 0;
con.add(labBrawn, gbc);
labAgility = new JLabel("Agility");
gbc.gridx = 1;
gbc.gridy = 0;
con.add(labAgility, gbc);
labIntellect = new JLabel("Intellect");
gbc.gridx = 2;
gbc.gridy = 0;
con.add(labIntellect, gbc);
labCunning = new JLabel("Cunning");
gbc.gridx = 3;
gbc.gridy = 0;
con.add(labCunning, gbc);
labWillpower = new JLabel("Willpower");
gbc.gridx = 4;
gbc.gridy = 0;
con.add(labWillpower, gbc);
labPresence = new JLabel("Presence");
gbc.gridx = 5;
gbc.gridy = 0;
con.add(labPresence, gbc);
txtBrawn = new JTextField("", 2);
gbc.gridx = 0;
gbc.gridy = 1;
con.add(txtBrawn, gbc);
txtAgility = new JTextField("", 2);
gbc.gridx = 1;
gbc.gridy = 1;
con.add(txtAgility, gbc);
txtIntellect = new JTextField("", 2);
gbc.gridx = 2;
gbc.gridy = 1;
con.add(txtIntellect, gbc);
txtCunning = new JTextField("", 2);
gbc.gridx = 3;
gbc.gridy = 1;
con.add(txtCunning, gbc);
txtWillpower = new JTextField("", 2);
gbc.gridx = 4;
gbc.gridy = 1;
con.add(txtWillpower, gbc);
txtPresence = new JTextField("", 2);
gbc.gridx = 5;
gbc.gridy = 1;
con.add(txtPresence);
}
オーマイ...おかげで多く、そのような質問を悩ませて申し訳ありません。 – Faire
@ファイヤーうん、問題ありません。いつでも私に起こります。だから私はGridBagManagerを作成し、抽象パネルには 'add()'メソッドがあり、このクラスのフィールドである 'add(comp、gbc)'、 'GridBagConstraints gbc'を呼び出します。そのような単純な。それを見て、幸せなコーディング! – bigby