2

こんにちは、パネルにテキストエリア、テキストフィールド、ボタンを追加したいと思いました。領域は高さの 3/4 と全幅を使用し、フィールドは高さの 1/4 と幅の 3/4 を使用し、ボタンは高さの 1/4 と幅の 1/4 を使用する必要がありました。私が得たいものを示すために写真を投稿します。このコードは次のようになります。

// My JPanel class
public MainPanel() {
   setLayout(new GridBagLayout());
   add(area, new GBC(0, 0, 4, 3).setWeight(4,4).setFill(GBC.BOTH));
   add(field, new GBC(0, 3, 3, 1).setWeight(1,1).setFill(GBC.HORIZONTAL));
}

GBC は GridBagConstraints クラスから継承する私のクラスです:

public class GBC extends GridBagConstraints {

   public GBC(int gridx, int gridy) {
      this.gridx = gridx;
      this.gridy = gridy;
      weightx = 100;
      weighty = 100;
   }

   public GBC(int gridx, int gridy, int gridwidth, int gridheight) {
      this(gridx, gridy);
      this.gridwidth = gridwidth;
      this.gridheight = gridheight;
   }

   public GBC setFill(int fill) {
      this.fill = fill;
      return this;
   }
}

ここに画像の説明を入力

問題は、エリアとフィールドの両方が高さの半分を占め、ボタンが中央にあり、フィールドの下に隠されていることです.

4

2 に答える 2

3

weightx余分なスペースをweightyどのように分配するかを指定します。あなたの場合、それらは両方とも水平方向と垂直方向に同じ値100を持っています。

weightxweighty4に設定してみてくださいとを1JTextArea設定してくださいweightxweightyJTextField

ですべてのフィールドが何をするかについては、ドキュメントを確認できますGridBagConstraints

http://docs.oracle.com/javase/7/docs/api/java/awt/GridBagConstraints.html

于 2013-04-05T21:53:25.827 に答える