0

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になりますか?

4

1 に答える 1

3

ウィンドウのちょうど 50% を占める左側のテキスト ペインを使用して、ウィンドウを作成したいと考えています。

GridLayout次に、これらの 2 つのコンポーネントに対応するパネルを使用する必要があり ます。

ウィンドウの右側 (残りの 50%) には別のテキスト ペインがあり、その下には (ただし必要最小限のサイズのみ) ラベルがあります。

次に、テキスト ペインが「CENTER」に追加され、ラベルが「PAGE_END」に追加された BorderLayout が考えられます。

于 2014-09-14T18:29:04.537 に答える