为什么GridLayout不允许按行和列更改组件?

问题描述 投票:0回答:1

这可能不是问题,而是发牢骚,我知道this post中描述的问题有解决方法。但是我有一种情况,我必须向GridLayout中添加组件,可能会随着我的进行而扩大网格。但是不会以整洁的顺序创建和插入组件;而且我不知道何时将组件交给网格。换句话说,在3x3网格中,我可能会得到一个放置在(0,2)处的组件,然后将另一个放置在(1,0)处,然后放置在(0,0)处。然后我可能会得到(5,2)的一个,并且需要扩大网格。然后我可能会被告知用其他内容替换(0,0)处的行。

我知道没有办法说“将分量放在x,y处”。我知道我将必须构建一个2D数组来容纳我的组件,然后每次更改时清空并重新填充数组中的网格,这在多个大型网格中经常会发生,所以我会而不是。我明白生活就是这样,语言就是语言,我是谁来质疑原因。

但是我真的很好奇。这似乎是网格要支持的最基本的操作。没有它的感觉就像我正在使用一个电子表格,该电子表格只允许您按从左到右的顺序输入值-这很简单。

我没有拆开GridLayout的源代码,但是对它“必须工作”的任何天真理解使我认为add(component, row, col)实现起来应该是微不足道的。不一定要这样,因为GridLayout并不是全新的,而且我不敢相信我是第一个认为随机访问网格是个好主意的人。因此,这一定很难。但是为什么呢?

我意识到为什么GridLayout的内部结构不支持此功能,并不能解决任何实际问题,除了我无法停止思考该限制从根本上是多么奇怪的问题。最后,除非有人知道更好的方法,否则我将最终得到一个并行数组,或者弄乱更复杂的GridBagLayout。但是我只想知道为什么要这么做。

这可能不是问题,而是发牢骚,我知道这篇文章中描述的问题有解决方法。但是我有一种情况,我必须将组件添加到GridLayout,...

java swing layout-manager grid-layout
1个回答
2
投票

为什么不从另一个角度解决问题:

© www.soinside.com 2019 - 2024. All rights reserved.