2

JFrame に少なくとも 4 つのパネルを追加する必要がある小さな GUI を作成しています。GridBagLayout を使用しています。これらの各パネルには、長さの異なるいくつかのラベルとテキスト領域があります。次のように 3 つのフレームを挿入しました。

    jf.add(panel1, BorderLayout.NORTH);
    jf.add(panel2, BorderLayout.CENTER);
    jf.add(panel4, BorderLayout.SOUTH);

ここで jf はフレームです。パネル 2 とパネル 4 の間にもう 1 つのパネル (パネル 3) が必要です。ありがとうございました

4

2 に答える 2

2

フレームのコンテンツ ペインのレイアウトを BorderLayout 以外に変更し、必要な場所にパネルを追加します。おそらく、1 列 4 行の GridLayout を使用する必要があります。すべてのパネルの GridBagLayout を習得したので、必要に応じてコンテンツ ペインに GridBagLayout を使用することもできます。

于 2013-06-02T12:48:06.097 に答える
0

したがって、まず、 GridBagLayoutではなくBorderLayoutを使用しています。実際、GridBagLayout を使用する場合は、Frame を Excell Page と考えるだけで非常に簡単に使用できます。GridBagLayout を適切に使用する方法についても、初心者と専門家向けの完全で非常に役立つガイドを作成しました。

コードは次のとおりです。

package prueba;

import java.awt.*;
import javax.swing.*;

public class BlocPrueb extends JFrame{

JPanel container;   
JPanel panel1;
JPanel panel2;
JPanel panel3;
JPanel panel4;

GridBagLayout cockatoo;
GridBagConstraints c;

  public BlocPrueb(){

      JButton g = new JButton("JPanel1");
      JButton h = new JButton("JPanel2");
      JButton j = new JButton("JPanel3");
      JButton k = new JButton("JPanel4");

      cockatoo = new GridBagLayout();
      c = new GridBagConstraints();

      container = new JPanel();
      container.setLayout(cockatoo);

      panel1 = new JPanel();
      panel2 = new JPanel();
      panel3 = new JPanel();
      panel4 = new JPanel();


      //Will use BorderLayout in the panels, cause its a demostration but it works as well as if it was the only panel in the JFrame.
      panel1.setLayout(new BorderLayout());
      panel1.add(g);

      panel2.setLayout(new BorderLayout());
      panel2.add(h);

      panel3.setLayout(new BorderLayout());
      panel3.add(j);

      panel4.setLayout(new BorderLayout());
      panel4.add(k);

      c.gridx = 0;
      c.gridy = 0;
      c.fill = GridBagConstraints.BOTH;
      container.add(panel1, c);

      c.gridx = 1;
      c.gridy = 0;
      container.add(panel2, c);

      c.gridx = 2;
      c.gridy = 0;
      container.add(panel3, c);

      c.gridx = 3;
      c.gridy = 0;
      container.add(panel4, c);

      getContentPane().add(container);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      setTitle("Cockatoo Panels inside a JFrame (GridBagLayout)");
      pack();
      setResizable(true);
      setLocationRelativeTo(null);
      setVisible(true);

  } 

    public static void main (String args[]){

        BlocPrueb v = new BlocPrueb();

}


}

そして、ここにあなたが得るべきものがあります: GridBagLayout を使用する JPanels

于 2015-05-21T22:16:09.410 に答える