使 2 个 JButton 大小相等

Posted

技术标签:

【中文标题】使 2 个 JButton 大小相等【英文标题】:Make 2 JButtons Equal in size 【发布时间】:2011-11-15 21:18:58 【问题描述】:

我有两个JButtons,带有文本“Ok”和“Cancel”。我正在使用GridBagLayout 将它们与JDialog 对齐。我已将锚点设置为GridBagConstraints.CENTER。由于文本“Ok”和“Cancel”的字符数不同,因此按钮大小不同。如何正确对齐它们,以使它们中的每一个都具有相同的大小。我尝试了以下但无济于事。

okayButton.setSize(cancelButton.getSize());

【问题讨论】:

只是为了强调:调整组件大小/定位组件是 LayoutManager 的工作(您已经使用过,很好!) - 应用程序代码中的 setSize 已经(并且应该并且必须有:-) 没有效果 【参考方案1】:

而不是okayButton.setSize(cancelButton.getSize()); 使用okayButton.setPreferredSize(cancelButton.getPreferredSize());

【讨论】:

-1 no ... 永远不要在应用程序代码中使用 setXXSize(出于某些原因,请参阅 ***.com/questions/7229226/…),而是使用像样的 LayoutManager 顺便问一下,我应该删除那些可能误导人们的答案吗?【参考方案2】:

GridBaglayout 得到GridBagConstraints 并且在所有情况下都接受PreferredSize

here 和 here 示例

【讨论】:

【参考方案3】:

尝试将填充设置为GridBagConstraints.BOTH 并赋予两个按钮相同的权重。

【讨论】:

以上是关于使 2 个 JButton 大小相等的主要内容,如果未能解决你的问题,请参考以下文章

java 界面编程中 JButton问题

在 JButton 中调整 ImageIcon 的大小

使 JButton 不可见,但可点击?

如何改变JButton的位置和大小?

Java中JButton常用设置

更改可见性时,JButton 大小设置为默认大小