2

以下のコードがあります。JFrame のすべてのスペースを占有する必要がある JPanel がありますが、フレームが完了すると停止します。フォーム レイアウトを使用する場合はそうではありません。以下のコードをご覧ください

import com.jgoodies.forms.debug.FormDebugPanel;
import com.jgoodies.forms.layout.FormLayout;

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

public class Test {


    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                final JFrame frame=new JFrame();
                JPanel panel=new JPanel(new BorderLayout());
                FormDebugPanel comp = new FormDebugPanel(
                        new FormLayout("10dlu,fill:pref:grow,10dlu","10dlu,fill:pref:grow,10dlu"));
                panel.add(comp, BorderLayout.CENTER);
                frame.setContentPane(panel);
                frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
                frame.setVisible(true);
            }
        });

    }
}

これにより、下の図が得られます。パネルが親コンテナーの境界を超えて拡大し続けているように見えるため、右側と下部の境界線は表示されません。私が間違っていることはありますか?

ここに画像の説明を入力

4

1 に答える 1

0

最初にフレームに適切なサイズを設定するか、拡大と塗りつぶしを変更する必要があります。pack() は、formdebugpanel がそのコンポーネントをロードした後にパックする場合にのみ機能します。

于 2014-01-22T00:06:05.513 に答える