不断增长的面板不会在JFrame - FormLayout的末尾结束

时间:2014-01-01 08:09:31

标签: java swing layout-manager jgoodies

我有下面的代码,我有一个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);
            }
        });

    }
}

这导致下图。右侧和底部的边框不显示,因为看起来面板继续增长超出父容器的边界。有什么我做错了吗?

enter image description here

1 个答案:

答案 0 :(得分:0)

您必须先在框架上设置首选尺寸,或更改增长和填充。 pack()仅在formdebugpanel加载其组件后进行打包时才有效。