を初めて使用していSwing
ますGridBagLayout
が、これまでにコンテナーに追加したコンポーネントは 2 つだけですが、さらに下に垂直に追加するつもりです。これまでのところ、最初のコンポーネント (a JLabel
) は に正しく配置PAGE_START
されており、コンポーネントの対応する の重み属性を設定することを覚えていますGridBagConstraints
。ただし、2 番目のコンポーネント (a JTextField
) は意図したとおりに配置されておらず、 の下に移動するのではなく、コンテナーの中央に配置されていJLabel
ます。FIRST_LINE_START
、PAGE_START
、NORTH
&を含む複数のアンカー定数を使用しようとしましNORTHWEST
たが、これまでのところ何も機能していません。
そこで、もう一度、才能のあるスタックオーバーフローのコーダーに助けを求めます。以下はコードのスニペットで、その下は問題のイメージです。
// Instantiate components and configure their corresponding GridBagConstraints attributes
// refPlusType properties
refPlusType = new JLabel("<html><h3>"+"Reference"+" - "+"Job Type"+" </h3><hr /></html>");
refPlusTypeGC = new GridBagConstraints();
refPlusTypeGC.gridx = 0; // Grid position
refPlusTypeGC.gridy = 0;
refPlusTypeGC.gridwidth = 2; // Number of colums occupied by component
refPlusTypeGC.insets = new Insets(5, 10, 5, 10); // Specifies margin
refPlusTypeGC.weightx = 0.1; // Required for anchor to work.
refPlusTypeGC.weighty = 0.1; // Required for anchor to work.
refPlusTypeGC.anchor = GridBagConstraints.PAGE_START; // Position in container
// addressLine1 properties
addressLine1 = new JTextField();
addressLine1GC = new GridBagConstraints();
addressLine1GC.gridx = 0;
addressLine1GC.gridy = 1;
addressLine1GC.gridwidth = 2;
addressLine1GC.insets = new Insets(0, 10, 0, 10);
addressLine1GC.fill = GridBagConstraints.HORIZONTAL; // Specifies component fill Horizontal space
addressLine1GC.weightx = 0.1;
addressLine1GC.weighty = 0.1;
addressLine1GC.anchor = GridBagConstraints.FIRST_LINE_START;
// Add components to this HALLogisticsDetailsPanel
this.add(refPlusType, refPlusTypeGC);
this.add(addressLine1, addressLine1GC);
下の画像;
ご協力いただきありがとうございます。