YKLook説明書 クラス解説 YKLookPanelGridBag 機能別   ABC
ページ内リンク一覧   スーパークラス   クラスメソッド   インスタンスメソッド   その他の項目  

YKLookPanelGridBag


パネルオブジェクトです。
GUIオブジェクトの表示部品や操作部品を並べて置くための台紙として使います。
この YKLookPanelGridBag クラスは、GUI部品を縦横に並べます。
YKLookPanelGrid クラスに似ていますが、より柔軟な設定ができます。
縦と横のそれぞれの行と列のサイズは自由に指定でき、GUI部品は複数行または複数列の領域に配置できます。




クラスメソッド:   new   yk_find_objects   yk_find_objects_frame   yk_look   yk_look_frame
インスタンスメソッド:   yk_add   yk_add   yk_set_border
その他の項目: なし


 Object (Ruby 組み込みのクラス。すべてのオブジェクトのスーパークラス)
   ┃
   ┗ YKLookSwingBase (YKLook のすべてのGUIオブジェクトの共通クラス)
      ┃
      ┗ YKLookCompoent (YKLook のGUI表示部品の共通クラス)
         ┃
         ┗ YKLookPanelGridBag (このクラス)


new()  

インスタンスを生成します。




yk_find_objects()  
yk_find_objects( tagname )
yk_find_objects( tagname , tagno )

YKLookSwingBase.yk_find_objects の説明をご覧ください。




yk_find_objects_frame( frame )  
yk_find_objects_frame( frame , tagname )
yk_find_objects_frame( frame , tagname , tagno )

YKLookSwingBase.yk_find_objects_frame の説明をご覧ください。




yk_look( tagname )  
yk_look( tagname , tagno )

YKLookSwingBase.yk_look の説明をご覧ください。




yk_look_frame( frame , tagname )  
yk_look_frame( frame , tagname , tagno )

YKLookSwingBase.yk_look_frame の説明をご覧ください。



呼び出し形式[1]
yk_add( gui , hash )

引数で指定されたGUI部品をパネルに追加します。
このメソッドで追加できるGUI部品は、ラベルやボタンやパネル類も含め、 YKLookComponent クラスから派生しているすべてのクラスのオブジェクトです。

引数の hash は、GUI部品の配置情報をハッシュで指定します。
ハッシュのキーと内容は以下のとおりで、指定する値がデフォルト値と同じものは、そのキーも指定する必要はありません。
キー 内容
'gridx' GUI部品を配置するX方向の位置(列位置)を整数で指定します。
パネルの左端が 0 です。
gridx のデフォルトは nil です。
nil を指定すると、直前に追加したGUI部品の gridwidth の値により以下のような振る舞いをします。
  • 直前に追加したGUI部品の gridwidth nil のとき、今回の部品の gridx 0 を指定したのと同じことになります。
    もしすでにその位置に部品が配置されていたときは、その行内の空いている位置の中で最も左側を表します。
  • 直前に追加したGUI部品の gridwidth nil でないとき、この直前の部品の右の列を指定したのと同じことになります。
'gridy' GUI部品を配置するY方向の位置(行位置)を整数で指定します。
パネルの上端が 0 です。
gridy のデフォルトは nil です。
nil を指定すると、直前に追加したGUI部品と同じ行を表します。
ただし、直前に追加したGUI部品の gridwidth nil のときは、その下の行を表します。
'gridwidth' GUI部品を配置する幅(X方向の大きさ。列の数)を整数で指定します。 2 以上の値を指定すると、複数列に渡って配置します。
デフォルトは 1 です。
整数の代わりに nil を指定すると、この行の残りすべての列を指定したことになります。
'gridheight' GUI部品を配置する高さ(Y方向の大きさ。行の数)を整数で指定します。 2 以上の値を指定すると、複数行に渡って配置します。
デフォルトは 1 です。
整数の代わりに nil を指定すると、この列の残りすべての行を指定したことになります。
'top' GUI部品の周囲に隙間をあけるときに、その上側の隙間を整数で指定します。単位はピクセルです。
デフォルトは 0 です。
'left' GUI部品の周囲に隙間をあけるときに、その左側の隙間を整数で指定します。単位はピクセルです。
デフォルトは 0 です。
'bottom' GUI部品の周囲に隙間をあけるときに、その下側の隙間を整数で指定します。単位はピクセルです。
デフォルトは 0 です。
'right' GUI部品の周囲に隙間をあけるときに、その右側の隙間を整数で指定します。単位はピクセルです。
デフォルトは 0 です。
'ipadx' GUI部品のサイズを、ここで指定した数だけ左右に広げます。
単位はピクセルで、右と左にそれぞれこのサイズ分が広がるので、実際のGUI部品のサイズは、指定した値の2倍のピクセル増えます。
デフォルトは 0 です。
'ipady' GUI部品のサイズを、ここで指定した数だけ上下に広げます。
単位はピクセルで、上と下にそれぞれこのサイズ分が広がるので、実際のGUI部品のサイズは、指定した値の2倍のピクセル増えます。
デフォルトは 0 です。
'fill' GUI部品の面積よりもパネルのほうが広いときに、パネルの面積に合わせてGUI部品を大きくするかどうかを指定します。
以下の文字列の中から指定してください。
指定 意味
'none'
nil
大きさを変えない
'horizontal' 横(左右・水平)方向のみ広げる
'vertical' 縦(上下・垂直)方向のみ広げる
'both' 両方の方向とも広げる
英字の大文字小文字はどちらでも受け付けます。
YKLook 内部では英字の先頭の1文字だけを見ています。
デフォルトは nil です。
fill の値によっては、 weightx,weighty の値も検討が必要です。
'anchor' GUI部品の大きさをパネルの大きさに合わせて広げないときに、余った空間とGUI部品との位置関係を指定します。
以下の文字列の中からGUI部品の位置を指定してください。
指定 意味
'c' 中央( center の略)
'n' 上 (北。 north の略)
'nw' 左上(北西。 northwest の略)
'ne' 右上(北東。 northeast の略)
's' 下 (南。 south の略)
'sw' 左下(南西。 southwest の略)
'se' 右下(南東。 southeast の略)
'w' 左 (西。 west の略)
'e' 右 (東。 east の略)
英字の大文字小文字はどちらでも受け付けます。
デフォルトは nil で、 'c' と同じです。
'weightx' ウインドウ・フレームのマウスドラッグ等で、アプリ利用者の画面操作によりパネルの面積が広くなった場合に、その広がった面積をパネル内の各GUI部品に分配するときの割合を指定します。 weightx は、同じ行にあるGUI部品がそれぞれ持っている weightx と関連します。
例えば同じ行に3個の部品があり、 weightx の値がどれも 1 のときパネルが広くなったら、そのぶんの面積は3個の部品に均等に分配されます。中央の部品の weightx 2 のときは、両端の部品に比べて割り当て量が2倍になります。
weightx の値は整数でも実数でもよく、値自体に絶対的な意味はありません。同じ行の他のGUI部品の値との相対的なものです。
weightx のデフォルトの値は 0 で、この値を持つGUI部品の面積はパネルが広くなっても変わりません。
例えばパネル内のすべてのGUI部品の weightx 0 のとき、パネルが広くなってもそれぞれの部品は変化せず、部品間の隙間が広くなります。
fill の値によっては、 weightx の値も検討が必要です。
'weighty' ウインドウ・フレームのマウスドラッグ等で、アプリ利用者の画面操作によりパネルの面積が広くなった場合に、その広がった面積をパネル内の各GUI部品に分配するときの割合を指定します。 weighty は、同じ列にあるGUI部品がそれぞれ持っている weighty と関連します。
例えば同じ列に3個の部品があり、 weighty の値がどれも 1 のときパネルが広くなったら、そのぶんの面積は3個の部品に均等に分配されます。中央の部品の weighty 2 のときは、両端の部品に比べて割り当て量が2倍になります。
weighty の値は整数でも実数でもよく、値自体に絶対的な意味はありません。同じ列の他のGUI部品の値との相対的なものです。
weighty のデフォルトの値は 0 で、この値を持つGUI部品の面積はパネルが広くなっても変わりません。
例えばパネル内のすべてのGUI部品の weighty 0 のとき、パネルが広くなってもそれぞれの部品は変化せず、部品間の隙間が広くなります。
fill の値によっては、 weighty の値も検討が必要です。

btn1 = YKLookButton.new( 'button 1' )
btn2 = YKLookButton.new( 'button 2' )
hash = { 'gridx' => 0 }
pan  = YKLookPanelGridBag.new()
pan.yk_add( btn1, hash )
pan.yk_add( btn2, hash )
この例の場合、2個のボタンが縦(上下)に配置されます。




呼び出し形式[2]
yk_add( gui , rect )
yk_add( gui , rect , fill )
yk_add( gui , rect , fill , geom )
yk_add( gui , rect , fill , geom , anchor )

引数で指定されたGUI部品をパネルに追加します。
このメソッドで追加できるGUI部品は、ラベルやボタンやパネル類も含め、 YKLookComponent クラスから派生しているすべてのクラスのオブジェクトです。

引数の rect は配列で、以下のいずれかの形式で指定します。
それぞれの値の詳細は、 yk_add( gui , hash ) の説明をご覧ください。

btn1 = YKLookButton.new( 'button 1' )
btn2 = YKLookButton.new( 'button 2' )
rect = [0, nil]
pan  = YKLookPanelGridBag.new()
pan.yk_add( btn1, rect )
pan.yk_add( btn2, rect )
この例の場合、2個のボタンが縦(上下)に配置されます。

btn1 = YKLookButton.new( 'button 1' )
btn2 = YKLookButton.new( 'button 2' )
pan  = YKLookPanelGridBag.new()
pan.yk_add( btn1, [0,0,1,1] )
pan.yk_add( btn2, [0,1,1,1] )
この例の場合、2個のボタンが縦(上下)に配置されます。

pf1 = YKLookPanelFlow.new()
pf2 = YKLookPanelFlow.new()
pf3 = YKLookPanelFlow.new()
pan = YKLookPanelGridBag.new()
pan.yk_add( pf1, [0,0,1,2] )  # 左端、1列分の幅と2行分の高さ
pan.yk_add( pf2, [1,0,1,1] )  # 右側、1列分の幅と1行分の高さ
pan.yk_add( pf3, [1,1,1,1] )  # 右側、1列分の幅と1行分の高さ
この例の場合、左側に pf1 のパネル、右側に pf2 pf3 のパネルが縦(上下)に配置されます。

引数の fill は文字列または nil です。
指定可能な値の詳細は、 yk_add( gui , hash ) の説明をご覧ください。

引数の geom は配列で、以下のいずれかの形式で指定します。
それぞれの値の詳細は、 yk_add( gui , hash ) の説明をご覧ください。

引数の anchor は文字列または nil です。
指定可能な値の詳細は、 yk_add( gui , hash ) の説明をご覧ください。




yk_set_border()  
yk_set_border( border )
yk_set_border( border , title )

ボーダー(枠)を指定します。
説明は、 YKLookComponent#yk_set_border() をご覧ください。



なし



ページ内リンク一覧   スーパークラス   クラスメソッド   インスタンスメソッド   その他の項目  
YKLook説明書 クラス解説 YKLookPanelGridBag 機能別   ABC


Copyright (c) 2003-2010 YorozuKotowariYa Ltd.