1

画像のように部品を配置したい。gridbaglayout を使用してこれを行うことができますが、borderlayout を使用してこれを行いたいと考えています。私はそれを試しましたが、私が望むものを達成できませんでした。ここに案内してください。ここの黒い長方形は、JPanel、ボタンなどのコンポーネントです。

ここに画像の説明を入力

4

2 に答える 2

4

BorderLayout のみで行いたい場合は、BorderLayout を 2 つ使用する必要があります。2 つのレイアウトを使用できない場合は、GridBagLayout に行き詰まっています。これは私が言っていることのデモンストレーションです:

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class Test {

    protected void initUI() {
        JFrame frame = new JFrame("test");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new JPanel(new BorderLayout());
        JPanel panel2 = new JPanel(new BorderLayout());
        panel2.add(new JButton("NORTH"), BorderLayout.NORTH);
        panel2.add(new JButton("CENTER"));
        panel.add(panel2);
        panel.add(new JButton("SOUTH"), BorderLayout.SOUTH);
        panel.add(new JButton("EAST"), BorderLayout.EAST);
        frame.add(panel);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                new Test().initUI();
            }
        });
    }
}

例

于 2012-05-15T10:58:54.943 に答える
3

ボーダー レイアウトはそのようには機能しません。これはボーダー レイアウトの回路図です。

ここに画像の説明を入力

EAST レイアウトを右上隅に配置することはできません。NORTH は常に右側にフロートします。

編集:SwingまたはAWTを使用してからの経過時間を示します-使用したときは、EAST、NORTH、WEST、SOUTH、およびCENTERでした。

于 2012-05-15T10:39:06.247 に答える