0

3 列のレイアウトを作成しようとしています。各列で、ラベルとテキスト ボックスを絶対位置に配置できるようにしたいと考えています。

問題は、私のラベル (jLabel2) が表示されないことです..

これが私のコードです:

 /**
  * Top JPanel (Top) 
  */
 JPanel pnlTop = new JPanel();
 pnlTop.setBackground(new java.awt.Color(223, 223, 217));
 pnlTop.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, new java.awt.Color(173, 173, 166)));
 c.gridx = 0;
 c.gridy = 0;
 c.gridwidth = 5; // five rows
 c.gridheight = 1; // one column
 c.fill = GridBagConstraints.BOTH;
 //c.weighty = 0.04;
 add(pnlTop, c);       

 /**
  * Top JPanel Content (Here is where i want to put absolute content)
  */
 JPanel pnlTopContent = new JPanel();
 pnlTopContent.setLayout(null);

 jLabel2.setFont(new java.awt.Font("Lucida Grande", 1, 16)); // NOI18N
 jLabel2.setText("Hello");

 jLabel2.setLocation(150, 50);     

 pnlTopContent.add(jLabel2);
 pnlTop.add(pnlTopContent);

私が間違っていることは何ですか?

4

2 に答える 2

1

次に、表示されますが、適切な場所にはありません

あなたにとって「正しい場所」とは何ですか?2 番目のパネルにラベルを追加するのはなぜですか? ラベルを pnlTopContent に直接追加しないのはなぜですか?

GridBagLayout には、コンポーネントを列の右/左/中央に配置できる制約があります。GridBagLayout の使用方法に関する Swing チュートリアルのセクションを読んでください。anchor制約から始めたいと思うかもしれません。

于 2013-07-22T14:45:58.643 に答える
0

のレイアウト マネージャーを使用しますpnlTopContent。どちらが正しいかは、あなたが何を望んでいるかによって異なります。デフォルトでも機能する場合がありますFlowLayout。ラベルを中央に配置する場合は、たとえばFlowLayout中央揃えで使用できます。

pnlTopContent.setLayout(new FlowLayout(FlowLayout.CENTER));
于 2013-07-22T14:30:10.167 に答える