2

我有下面的代码,其中我有一个 JPanel 需要占用 JFrame 的所有空间,但在框架完成时停止。使用表单布局时,它不会。请看下面的代码

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 回答