我想爲計算器GUI安排兩組按鈕。每個人都使用GroupLayout來製作它們。一組是數字(和「。」),另一組用於操作按鈕。這基本上可以工作,但如果其中一個按鈕具有雙倍長度(例如我的操作集上的等號按鈕),則會拋出其他按鈕。 我將使用操作集作爲例子。有兩列和四行按鈕。最後一行只有一個按鈕 - 等於。我想在這兩列上進行雙倍的伸展。此刻,當我想讓第二列坐在它的頂部時,它簡單地將第二列推到最後。Java - 在GroupLayout中混合組件大小
下面是佈局代碼 - operLayout是操作佈局的名稱,第一行左右括號,+和 - 第二行,*和/第三行,等於最後一行。每個按鈕的最小尺寸設置在別處(它們都是相同的,除了等於兩倍)。
operLayout.setAutoCreateGaps(true);
operLayout.setAutoCreateContainerGaps(true);
operLayout.setVerticalGroup(operLayout
.createSequentialGroup()
.addGroup(
operLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(leftBracket)
.addComponent(rightBracket))
.addGroup(operLayout.createParallelGroup().addComponent(add).addComponent(subtract))
.addGroup(operLayout.createParallelGroup().addComponent(multiply).addComponent(divide))
.addGroup(operLayout.createParallelGroup().addComponent(equals)));
operLayout.setHorizontalGroup(operLayout
.createSequentialGroup()
.addGroup(
operLayout.createParallelGroup().addComponent(leftBracket).addComponent(add)
.addComponent(multiply).addComponent(equals))
.addGroup(
operLayout.createParallelGroup().addComponent(rightBracket).addComponent(subtract)
.addComponent(divide)));
我明白爲什麼會發生這種情況,但我不確定如何整理。有一個簡單的方法嗎?或者我應該改變我的做法嗎?謝謝
對於您爲此任務選擇'GroupLayout',我表示讚賞。我相信這個佈局對於佈置標準表單來說是最強大的。這很容易被忽視,因爲它使用起來很複雜。在瞭解它的工作原理之後,我幾乎全部使用它。 –
可以重新格式化您的代碼?目前;這是相當難以理解的。 – ArtB
是的,請做,雖然有人可能擊敗了你。 謝謝@ErickRobertson,我知道你的意思,看起來很複雜,但一旦你明白了,它就非常有用! – PatrickJBC