Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 面板,仅调整指定组件的大小_Java_Swing_Layout_Resize_Panel - Fatal编程技术网

Java 面板,仅调整指定组件的大小

Java 面板,仅调整指定组件的大小,java,swing,layout,resize,panel,Java,Swing,Layout,Resize,Panel,我想创建存储多个组件的面板,但在调整面板大小时只调整所需组件的大小。例如,如果我有一个存储1个标签和2个文本字段的面板,我希望能够告诉它只调整文本字段的大小,而不调整标签的大小。是否有任何版面已经这样做了,或者我必须开始学习编写自定义版面 默认情况下,没有布局管理器查看类型然后决定采取行动。您可以使用不同的容器来模拟该行为,但实现自己的布局管理器将是更干净的解决方案。您可以显式地将不希望调整大小的组件的所有大小设置为相同的值 例如: Jlabel aLabel = new Jlabel("tex

我想创建存储多个组件的面板,但在调整面板大小时只调整所需组件的大小。例如,如果我有一个存储1个标签和2个文本字段的面板,我希望能够告诉它只调整文本字段的大小,而不调整标签的大小。是否有任何版面已经这样做了,或者我必须开始学习编写自定义版面

默认情况下,没有布局管理器查看类型然后决定采取行动。您可以使用不同的容器来模拟该行为,但实现自己的布局管理器将是更干净的解决方案。

您可以显式地将不希望调整大小的组件的所有大小设置为相同的值

例如:

Jlabel aLabel = new Jlabel("text");
Dimension d = new Dimension(50,20);
aLabel.setPreferredSize(d);
aLabel.setMinimumSize(d);
aLabel.setMaximumSize(d);

有一些布局管理器包括这种行为(嗯,有点)。例如,允许将面板分为列,并指定每个列的大小调整行为


一个典型的用例是,您有一个类似表单的结构(第1列包含标签,第2列包含一个输入字段),您希望调整第二列的大小,以确保标签的可见性,并让输入字段使用所有可用的额外空间。

要获得更好的帮助,请尽快发布帖子,是您的朋友,在这样的需求中:-)在这里,您可以指定,
GridBagConstraints.fill
property来定义您希望组件如何填充展开时的区域。它可以有
中的任意值,包括垂直、水平和无
或MigLayout(SpringLayout)+1I建议您不要使用此解决方案,因为您可能会违反L&F的规定。有很多布局经理,你可以表示你想要的是首选的尺寸,而不是更多,而不是更少。@Rohit Malish:没错。我建议先试试。然后就你面临的具体问题提出新问题。“我建议先”我建议不要给出几乎肯定会出现的关于如何用建议的“修复”修复问题的后续问题的答案。