首页 > 解决方案 > 如何在 Swing 中使用 GridLayout?

问题描述

我尝试使用 Swing 制作 GUI。但是当我尝试使用 GridLayout 时,每个元素都会突然消失,我不知道为什么。有人可以解释和/或提供解决方案吗?

我已经尝试查看它的教程,但它并没有太大帮助。我做了一些试验,但仍然没有工作。:(

JPanel pan1 = new JPanel();
JPanel pan2 = new JPanel();
JPanel pan3 = new JPanel();
JPanel pan4 = new JPanel();
JPanel pan5 = new JPanel();
add(pan1);
add(pan2);
add(pan3);
add(pan4);
add(pan5);
pan1.setLayout(new GridLayout(0, 1));
pan2.setLayout(new GridLayout(1, 1));
pan3.setLayout(new GridLayout(2, 1));
pan4.setLayout(new GridLayout(3, 1));
pan5.setLayout(new GridLayout(4, 1));

我预计每 0-4 列中有 1 个元素,但它显示了一个空白屏幕。

标签: javaswinguser-interfacelayout-managergrid-layout

解决方案


我预计每 0-4 列中有 1 个元素,但它显示了一个空白屏幕。

不,您有 5 个面板,每个面板都有一个网格布局。

pan1.setLayout(new GridLayout(0, 1)); //pan1 gets a new GridLayout
pan2.setLayout(new GridLayout(1, 1)); //pan2 gets a new GridLayout
pan3.setLayout(new GridLayout(2, 1)); //...
pan4.setLayout(new GridLayout(3, 1));
pan5.setLayout(new GridLayout(4, 1));

你需要:

setLayout(new GirdLayout(1,5);  //1 Row 5 Columns
add(pan1);
add(pan2);
add(pan3);
add(pan4);
add(pan5);

推荐阅读