0

JPanel(1)をGridBagLayout JPanel(2)に追加すると、JPanel(1)は中央にある小さな正方形に縮小されます。理論的にはうまくいくはずなので、なぜこれが起こったのかわかりません。デフォルトのBorderLayoutと関係があると思いますか?BorderLayoutがあなたのJPanelを真ん中に置くことをどこかで読んだからです。しかし、私はすでにレイアウトをGridBagとして設定しているので、なぜこれが起こっているのかわかりません。これが私のコードです:

    JFrame f = new JFrame("TEST");

    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

    f.setSize(300, screenSize.height);
    f.setLocation(screenSize.width - 300, 0);
    f.setVisible(true);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    GridBagConstraints gbc = new GridBagConstraints();

    JPanel panel = new JPanel(new GridBagLayout());
    JPanel A = new JPanel();
    Dimension d = new Dimension(270, 50);
    A.setSize(d);
    A.setBackground(Color.GREEN);
    JPanel B = new JPanel();
    B.setSize(d);
    B.setBackground(Color.BLUE);

    gbc.gridy = 0;
    panel.add(A, gbc);
    gbc.gridx = 1;
    panel.add(B, gbc);

    f.add(panel);

    f.validate();
    f.repaint();

さらに、AとBの境界線を100ピクセルに設定すると、両方が表示され始めます。だから私は本当に混乱しています!

4

1 に答える 1

1

GridBagLayout で髪を引っ張るのをやめて、代わりに MigLayout を試してみてください。時間を大幅に節約できます。

http://www.miglayout.com

于 2012-02-28T12:12:58.763 に答える