SwingBuilder を使用して GridBagLayout を groovy で実行するのに問題があります。問題はGroovyではなくGridBagLayoutだと思うので、これはJavaでも同じように機能すると思います。
次の簡単なレイアウトがあります。
new SwingBuilder().edt {
frame(title: 'test', defaultCloseOperation: JFrame.EXIT_ON_CLOSE, pack: true, show: true) {
gridBagLayout()
widget(textPane(background: java.awt.Color.RED), constraints: gbc(gridx:0, gridy: 0, weightx: 0.5, weighty: 1, fill: GBC.BOTH, gridheight: GBC.REMAINDER))
widget(textPane(background: java.awt.Color.GREEN), constraints: gbc(gridx: 1, gridy: 0, weightx: 0.5, weighty: 1, fill: GBC.BOTH))
label(text: "test label", background: java.awt.Color.BLUE, opaque: true, constraints: gbc(gridx: 1, gridy: 1, weightx: 0.5, fill: GBC.BOTH))
}
}
ウィンドウのちょうど 50% を占める左側のテキスト ペインを使用して、ウィンドウを作成したいと考えています。ウィンドウの右側 (残りの 50%) には別のテキスト ペインがあり、その下には (ただし必要最小限のサイズのみ) ラベルがあります。
上記のコードは機能し、必要なウィンドウを作成しますが、左側のテキスト ペインに入力し始めるとすぐに、左側が (ウィンドウの 50% よりも) スペースを取り始めます。
上記のレイアウトを達成するにはどうすればよいので、テキストペインにどのテキストが入力されても、両面が常に50:50になりますか?