有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java维度,仅更改宽度/高度

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

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

但我觉得我做得不对。 如果有更好的方法,最好的方法是什么


共 (3) 个答案

  1. # 1 楼答案

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

    关于维度对象的使用,没关系。最终,您可以直接访问维度字段:

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

    但这几乎是一样的

  2. # 2 楼答案

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

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

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

  3. # 3 楼答案

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