GridBagLayout 不显示组件
GridBagLayout does not display a component
我写了一个显示圆形进度条的组件。当我把它放在 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
设置的问题还是其他原因
But it can't be seen when a GridBagLayout is set.
可能是因为您没有重写组件的 getPreferredSize()
方法,所以首选大小为 (0, 0)。
GridBagLayout 将尝试以其首选大小显示组件。
我想您在添加组件时需要使用 fill
约束,以便它可以自动调整大小以填充单元格中可用的 space。阅读有关 How to Use GridBagLayout 的 Swing 教程部分,了解更多信息和示例。
When I put it in BorderLayout everything looks fine.
当添加到 BorderLayout 的中心时,组件将调整大小以填充 space 可用空间。
我写了一个显示圆形进度条的组件。当我把它放在 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
设置的问题还是其他原因
But it can't be seen when a GridBagLayout is set.
可能是因为您没有重写组件的 getPreferredSize()
方法,所以首选大小为 (0, 0)。
GridBagLayout 将尝试以其首选大小显示组件。
我想您在添加组件时需要使用 fill
约束,以便它可以自动调整大小以填充单元格中可用的 space。阅读有关 How to Use GridBagLayout 的 Swing 教程部分,了解更多信息和示例。
When I put it in BorderLayout everything looks fine.
当添加到 BorderLayout 的中心时,组件将调整大小以填充 space 可用空间。