我正在使用带有 GridBagLayout 的 JDialog。由于这个布局会自动确定容器和组件的大小,所以我没有在任何东西上使用 setSize。但是,在绘制 GUI 时,它似乎不必要地拉伸了容器。
为什么 GridBagLayout 不将容器的大小调整为“尽可能多”?基本上我希望对话框大小与里面的表格一样大。这是代码片段:
public class GridBagLayoutTester
{
public static void main(String[] args)
{
JDialog mDialog = new JDialog();
JPanel panel1 = new JPanel();
panel1.setLayout(new GridBagLayout());
// Create a table to be added to the panel
JTable table = new JTable(4,4);
JScrollPane scrollpane = new JScrollPane(table);
scrollpane.setBorder(BorderFactory.createLineBorder(Color.ORANGE, 5));
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = gbc.gridy = 0;
gbc.fill = GridBagConstraints.NONE;
gbc.anchor = GridBagConstraints.FIRST_LINE_START;
// Add table to the panel
panel1.add(scrollpane, gbc);
mDialog.add(panel1, BorderLayout.CENTER);
// Display the window.
mDialog.pack();
mDialog.setVisible(true);
}
}