我正在尝试将 JButton 的大小调整为始终为特定大小。我有 9 个这样的按钮。我从API了解到JButton继承了setSize(int a, int b)和setSize(Dimension d)。尽管我尝试了另一个,但我选择使用第二个,但它没有解决我的问题。这是代码。
// setup buttons
reset = new JButton("Reset");
square1 = new JButton();
square2 = new JButton();
square3 = new JButton();
square4 = new JButton();
square5 = new JButton();
square6 = new JButton();
square7 = new JButton();
square8 = new JButton();
square9 = new JButton();
//set button size
Dimension d = new Dimension(100,100);
square1.setSize(d);
square2.setSize(d);
square3.setSize(d);
square4.setSize(d);
square5.setSize(d);
square6.setSize(d);
square7.setSize(d);
square8.setSize(d);
square9.setSize(d);
我尝试了几种不同的维度,但没有任何区别。我错过了什么?我正在为按钮所在的 JPanel 使用 gridLayout(3,3,5,5)。 JFrame 的尺寸为 (400,425)。感谢您的帮助!
最佳答案
布局管理器通常不考虑组件的大小,因此设置大小通常影响不大。相反,布局管理器通常尊重组件的首选尺寸。话虽如此,通常最好不要尝试通过 setPreferredSize(Dimension d)
自己设置 preferredSizes,而是让布局管理器和组件为您执行此操作。如果您必须自己做,请考虑扩展组件并覆盖 getPreferredSize()
并添加智能代码以返回合适且适当的 preferredSize 维度。
例如,请查看我对最近一个问题 here 的回答中的代码.在其中,我更改了 JButton 字体的大小以使其变大,但我从未设置任何组件的大小或首选大小,而是让组件本身和容器的布局管理器为我完成这项工作。
如果你不相信我,请阅读 kleopatra 的一些帖子和评论。 ,我所知道的最聪明、最有影响力的 Swing 编码员之一,也是 SwingX toolkit 的作者之一。 .例如她的回答here .
关于java - 设置 JButton 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25945439/