3

Noob の質問: 次のフォーム レイアウトがあります (JRuby 構文についてはご容赦ください)。使用可能なスペースを埋めるために、3 つのボタンすべての高さを伸ばしたいと思います。しかし、ボタン 3 だけがそうします。

require 'java'
require './lib/jgoodies-common-1.2.1.jar'
require './lib/jgoodies-forms-1.4.2.jar'

java_import javax.swing.JButton
java_import javax.swing.JFrame

java_import com.jgoodies.forms.layout.CellConstraints
java_import com.jgoodies.forms.layout.FormLayout

class Foo < JFrame
  def initialize
    super
    cc = CellConstraints.new

    layout = FormLayout.new(
      "10dlu, pref:grow, 10dlu, pref:grow, 10dlu",
      "10dlu, pref:grow, 10dlu, pref:grow, 10dlu"
    )
    layout.setRowGroups([[2, 4]])
    layout.setColumnGroups([[2, 4]])

    self.setLayout(layout)

    self.add(JButton.new("button 1"), cc.xy(2, 2))
    self.add(JButton.new("button 2"), cc.xy(2, 4))
    self.add(JButton.new("button 3"), cc.xywh(4, 2, 1, 3))

    self.pack
    self.setVisible(true)
    self.toFront
  end
end

Foo.new

ヒントとポインタをいただければ幸いです。

--ベン

4

1 に答える 1

5

高さを埋めるようにrowSpecに指示します。

    FormLayout layout = new FormLayout(
            "10dlu, pref:grow, 10dlu, pref:grow, 10dlu",
            "10dlu, fill:pref:grow, 10dlu, fill:pref:grow, 10dlu"
            );

技術的には、これは行の「配置」を明示的に無効にします。これはデフォルトでは CENTER です。列の場合、デフォルトの位置合わせは FILL です (したがって、水平方向に引き延ばしたい場合はオーバールールは必要ありません)。3 番目のボタンが垂直方向にマジストレッチするように見える理由は、それが 2 つのコンテンツ行にまたがっているためです: 整列して埋めることができるものは他にほとんどありません (私が覚えている限りでは、詳細を確認していません)。

于 2011-10-20T08:43:37.937 に答える