更改按钮文本而不更改按钮大小

发布于 2024-08-08 09:26:26 字数 324 浏览 4 评论 0原文

我使用 borderLayout 将组件排列在 JFrame 中,并使用 Box(BoxLayout.X_AXIS) 将按钮彼此相邻放置。但这会产生两个问题:

  1. 我希望按钮具有相同的大小,但它会自动调整它们的大小以适合其中的文本(当我在运行时更改按钮内的文本时尤其烦人)

  2. 我希望按钮之间有一点空间(假设 10 px)

这可以使用 borderLayout 实现,还是需要使用 setLayout 为 null?如果是这样,这是否会破坏按钮在框架中的原始位置?或者这仍然由与 borderLayout 一起放置的 Box 来处理?

I'm using a borderLayout to arrange my components in a JFrame and a Box(BoxLayout.X_AXIS) to put buttons next to each other. But it creates two problems:

  1. I want the buttons to have the same size, but it automatically resizes them to fit the text within them (especially annoying when I change the text inside a button at runtime)

  2. I want the buttons to have a little bit of space between them (let's say 10 px)

Is this possible using the borderLayout, or do I need to use the setLayout to null? And if so, wouldn't this screw up the original placement of the buttons in the frame? Or would this still be dealt with by the Box which is placed with the borderLayout?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

抱着落日 2024-08-15 09:26:26

一些建议

  1. 尝试将 preferredSize 设置为合适的 Dimension
  2. 如果这不起作用,请尝试设置 maximumSize如果仍然不起作用
  3. ,请将按钮的布局管理器更改为 GridBagLayout。这个布局管理器的优点是它可以让您控制布局的行为的细节。缺点是您通常需要在 GridBagLayout 上配置大量属性才能获得所需的行为。我建议首先查看 GridBagLayout 教程,因为它是一个相当复杂的野兽。

A couple of suggestions

  1. Try setting the preferredSize to a suitable Dimension value
  2. If that doesn't work, try also setting the maximumSize and minimumSize to this same Dimension value
  3. If that still doesn't work, change the buttons' layout manager to a GridBagLayout. The advantage of this layout manager is that it lets you control the layout's behaviour in minute detail. The disadvantage is that you usually need to configure a large number of properties on the GridBagLayout in order to get the desired behaviour. I'd advise checking out a GridBagLayout tutorial first, as it's a reasonably complex beast.
围归者 2024-08-15 09:26:26

如果您希望它们具有相同的大小,则只需将按钮添加到 GridLayout 中,它们的大小就会自动调整为最大的文本字符串。您还可以指定组件之间的间隙。

If you want them to have the same size then just add the buttons to a GridLayout and they will automatically be sized to the largest text string. You can also specify a gap between components.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文