Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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 GridBagLayout最大单元格大小_Java_Swing_Size_Cell_Gridbaglayout - Fatal编程技术网

Java GridBagLayout最大单元格大小

Java GridBagLayout最大单元格大小,java,swing,size,cell,gridbaglayout,Java,Swing,Size,Cell,Gridbaglayout,是否可以限制GridBagLayout中的单元格大小(高度/宽度) 我是说。。我有两行具有相同的权重x=0.5,但当我调整大小时,我不希望第一行的像素数高于300 此外,我不希望它不采取任何可用的空间,如果它小于300。(将权重X设置为0)。 为单元格中的组件设置最大大小是没有意义的,因为当我调整大小时,所有可用空间都会被该组件填满(组件会调整大小以填充单元格)。据我所知,GridBagLayout无法完成此操作。幸运的是,还有其他选择。与GridBagLayout类似,但功能更强大,表现力更强

是否可以限制GridBagLayout中的单元格大小(高度/宽度)

我是说。。我有两行具有相同的权重x=0.5,但当我调整大小时,我不希望第一行的像素数高于300

此外,我不希望它不采取任何可用的空间,如果它小于300。(将权重X设置为0)。
为单元格中的组件设置最大大小是没有意义的,因为当我调整大小时,所有可用空间都会被该组件填满(组件会调整大小以填充单元格)。

据我所知,GridBagLayout无法完成此操作。幸运的是,还有其他选择。与
GridBagLayout
类似,但功能更强大,表现力更强。它也是基于单元格的,允许您设置单元格和单元格行/列的最小、首选和最大大小

虽然我建议您制定自己的解决方案,因为这一解决方案过于依赖于行约束,这是我喜欢的,并且基于对您想要的内容的一些假设,但下面是一个示例:

JPanel panel = new JPanel(new MigLayout("flowy, fillx, filly", "[fill, grow]", "[fill, 0:100:300][fill, 0:100:max(100%,300)]"));
JPanel redPanel = new JPanel();
redPanel.setBackground(Color.RED);
JPanel bluePanel = new JPanel();
bluePanel.setBackground(Color.BLUE);

panel.add(redPanel);
panel.add(bluePanel);

JFrame frame = new JFrame();
frame.add(panel);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
GBL不会,但会帮你的。