尺寸,仅更改宽度/高度

问题描述 投票:16回答:3

如何仅更改需要Dimension对象的组件的宽度或高度?目前我是这样的:

jbutton.setPreferredSize(new Dimension(button.getPreferredSize().width, 100));

但是我有一种错误的感觉。如果有更好的方法,最好的方法是什么?

java swing layout-manager dimension
3个回答
18
投票

首先,您没有更改JButton的尺寸。您正在指定所需的首选大小,最终可以将其应用于您的JButton,具体取决于插入该组件的LayoutManager。

出于什么考虑,可以使用Dimension对象。最终,您可以直接访问“维度”字段:

Dimension d = button.getPreferredSize();
d.height = 10;
jbutton.setPreferredSize(d); 

但是几乎是同一回事。


3
投票

我最终按照克娄巴特拉所说的去做。不更改preferredSize,而是让布局管理器完成这项工作。因为这是更改组件大小的正确方法。


0
投票

我有相同的问题,但使用的应用程序不同-我只需要限制我要添加到具有BoxLayout的容器中的JPanel的高度。因此,当我在其上调用setMaximumSize并将其PreferredSize用作宽度时,结果是它没有得到我期望的水平尺寸拉伸;它变短了,因为那是它的首选尺寸。我找不到布局管理器正在应用的实际宽度,因此对于在新Dimension中使用什么宽度感到困惑,但是我想要的高度设置就很好了。最终答案是:

myJPanel.setMaximumSize(new Dimension(<some overly high width value>, <desired height>));

然后,BoxLayout管理器为myJpanel提供了仍然可以水平填充容器的正确的较低宽度,以及我想要防止垂直拉伸的较低高度。

© www.soinside.com 2019 - 2024. All rights reserved.