我有下面的代码,我有一个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);
}
});
}
}
这导致下图。右侧和底部的边框不显示,因为看起来面板继续增长超出父容器的边界。有什么我做错了吗?
答案 0 :(得分:0)
您必须先在框架上设置首选尺寸,或更改增长和填充。 pack()仅在formdebugpanel加载其组件后进行打包时才有效。