有没有一种方法可以在BorderLayout的中心保留JButton的自然大小?现在,它会向所有方向扩展以填充空间,但我希望它保持正常大小。
如果不可能,如何使按钮保持正常大小并位于面板的中心?
边框布局中心的组件会被拉伸,可以通过将按钮添加到具有FlowLayout的JPanel中,然后将其添加到CENTER来解决这个问题。
JPanel borderPanel = new JPanel(new BorderLayout());
JButton theButton = new JButton("Click Me");
JPanel flowPanel = new JPanel(new FlowLayout());
flowPanel.add(theButton);
borderPanel.add(BorderLayout.CENTER, flowPanel);
我建议直接使用GridBagLayout
。虽然它有一些奇怪的行为和不好的界面,但它是一个标准布局,可以做几乎所有的事情。你将需要它,所以即使在不严格需要时也应该始终使用相同的布局管理器。
对于如此简单的布局,使用GridBagLayout是杀鸡焉用牛刀。我会尽可能避免使用GridBagLayout - 如果可以的话,请使用嵌套的JPanel或MigLayout(外部jar)。