关于java:jButton在更改文本标签时调整大小

jButton resizing upon changing text label

我对Java GUI相当陌生,并且一直在使用netbeans来帮助我。

我已经设置了一个jButton,以便在单击时更改其标签。我的问题是,尽管设置了最大和最小大小以及设置了preferredSize方法,但按钮的大小仍拒绝保持固定。我需要更改布局吗?我应该将每个按钮都放在面板上还是有更简单的方法?

我觉得这应该是一个容易解决的问题,但是我已经解决了一个多小时。我将不胜感激。谢谢


  • 如果您不熟悉Swing,请不要使用GUI构建器,因为这样会遇到各种各样的问题。
  • 听起来您的布局正在阻止调整大小。确保为设计外观使用正确的布局管理器。仔细检查您为布局设置的所有约束。您可以尝试使用其他布局管理器(例如FlowLayout)来检查以确保您的setPreferredSize()调用正常工作等。

  • 有多种方法可以处理此问题:

  • 一种干净简便的方法是为不同的按钮创建图像图标,使它们的大小相同。这使您可以完全控制它们的外观。

  • 一种快速而又肮脏的方法是添加空格,直到按钮的大小大致相同。这不是完美的,因为JButons上显示的字体通常不是固定宽度的。

  • 正确的Swing方法是使用自定义布局。例如,如果您使用GridBagLayout来排列组件,并将JButton的'weightx'和'weighty'设置为1.0,则它将占用尽可能多的空间,这将使其保持相同的大小。 >