我当前的问题是我有一个带有 2x2 GridLayout 的 JFrame。在其中一个正方形内,我有一个用于显示网格的 JPanel。我正在与 java swing 库一起度过愉快的一天...看看
Image
Java 会自动扩展每个 JLabel 以适合屏幕。我希望它只是那些蓝色方块(水)和黑色边框,而不是那个灰色空间。有没有一种方法可以永久设置 JPanel 的大小,这样我就不必在获得确切的尺寸之前更改 JFrame 的大小一百万次,从而使灰色空间消失?
我还想设置这些按钮的大小,这样它们就不会那么大(BorderLayout
用于按钮和文本字段)
网格包布局是你真正想要使用的。 GridLayout 将强制布局中的每个组件具有相同的大小,无论您对它们施加什么大小限制。 GridBagLayout 更强大,也更复杂。研究API页面为了它。使用GridBagLayout
,如果您不希望组件填充整个网格空间,它们甚至可以保持您要求的大小。为了防止组件的大小发生变化,我将设置所有三个可用的大小约束:
water.setPreferredSize(new Dimension(20, 20));
water.setMinimumSize(new Dimension(20, 20));
water.setMaximumSize(new Dimension(20, 20));
对于你的按钮,我肯定会使用内部面板作为Bryan提到。如果您不希望所有按钮具有相同的大小,您可以使用他建议的 GridLayout 或 FlowLayout。将所有按钮添加到该内部面板而不是主面板。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)