java - 如何在 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 个元素,但它显示了一个空白屏幕。
解决方案
我预计每 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);
推荐阅读
- r - 根据匹配值减去 R 中的行
- python - 我在 python 3.8.3 中遇到导入错误
- permissions - 不同资源组中 Blob 上的数据工厂触发器失败
- python - Python Pandas 匹配精确模式
- python - 调用 Flask 路由时运行线程
- firebase - Flutter StreamBuilder 用于多个 firebase 文档
- corda - 查找响应程序流异常的原因
- javascript - 在一个文件中更改变量会与 React JS 中其他文件的数据冲突
- types - 反序列化特定类型时添加自定义代码
- node.js - 使用 Mongoose + Node.js 的最佳 Async/Await 方法是什么?