2

を作ってJFrame、そのフレームの中に、を使っていろいろなコンテナを置いたパネルがありGridBagLayoutます。のレイアウトをに設定JFrameBorderLayout、にパネルを追加しましたBorderLayout.WEST。そのパネルのコンテナを左上隅に表示したいと思います。どうやってやるの?

パネルを追加しようとしてBorderLayout.NORTHも、上部中央に表示されますが、代わりに左上隅に配置したいと思います

それを行う方法はありますか?IE表示したい他のレイアウト

label1
button1     button2     button3

label2
button1     button2     button3

label 3
button1     button2     button3
4

3 に答える 3

4

GridLayoutこれは、とだけで簡単に実行できBorderLayoutます。

ラベルボタンのレイアウト

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

class LabelButtonLayout {

    public static Component getButtonLayout(int num) {
        JPanel p = new JPanel(new BorderLayout(3,3));

        p.add(new JLabel("Label " + num), BorderLayout.NORTH);

        JPanel b = new JPanel(new GridLayout(1,0,25,5));
        for (int ii=1; ii<4; ii++) {
            b.add(new JButton("Button " + ii));
        }
        p.add(b, BorderLayout.CENTER);

        return p;
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater( new Runnable() {
            public void run() {
                JPanel gui = new JPanel(new GridLayout(0,1,3,15));
                for (int ii=1; ii<4; ii++) {
                    gui.add(getButtonLayout(ii));
                }
                JOptionPane.showMessageDialog(null, gui);
            }
        });
    }
}
于 2011-09-09T06:14:45.987 に答える
3

これを行うには多くの方法があります。1つはJPanelsをさらにネストすることです。JPanel BorderLayout.NORTHを配置し、BorderLayoutを指定します。次に、他のJPanelをこのBorderLayout.WESTに追加します。

于 2011-09-09T05:45:38.483 に答える
0

ボーダーレイアウトでは、NORTHWESTに直接何かを追加することはできません。

のレイアウトを作成してJFrameGridBagLayout必要な柔軟性を持たせることができます。

于 2011-09-09T05:49:12.897 に答える