[英]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.