我写了一个组件来显示一个圆形的进度条。当我把它放在 BorderLayout
一切看起来都很好。
但当一个 GridBagLayout
的设置。
p.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
p.add(north(), gbc);
gbc.gridx = 0;
gbc.gridy = 1;
p.add(west(), gbc);
gbc.gridx = 1;
gbc.gridy = 1;
p.add(bar, gbc);
我不知道是不是设置的问题。GridBagConstraints
或其他原因。
但当GridBagLayout被设置时,它就看不到了。
可能是由于你没有覆盖了 getPreferredSize()
方法,所以首选尺寸将是(0, 0)。
GridBagLayout将尝试以它的首选大小显示组件。
我猜你需要使用 fill
约束,这样就可以自动调整组件的大小以填充单元格中的可用空间。请阅读Swing教程中关于 如何使用GridBagLayout 以获取更多信息和示例。
当我把它放在BorderLayout中时,一切看起来都很好。
当添加到BorderLayout的CENTER时,该组件将被调整大小以填充可用空间。