繁体   English   中英

尺寸,仅更改宽度/高度

[英]Dimension, Only changing the width/height

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

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

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

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

对于什么问题,使用 Dimension 对象就好了。 最终您可以直接访问 Dimension 字段:

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

但这几乎是一样的。

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

我有同样的问题,但使用不同的应用程序 - 我只需要限制我添加到带有 BoxLayout 的容器的 JPanel 的高度。 所以当我在它上面调用 setMaximumSize 并使用它的 PreferredSize 作为宽度时,结果是它没有得到我期望的水平尺寸的拉伸; 它的尺寸更短,因为这是它的首选尺寸。 我找不到布局管理器应用的实际宽度,因此不知道在新 Dimension 中使用什么宽度,但我想要的高度设置工作得很好。 最后的答案是:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM