YKLook説明書 GUIオブジェクト利用の手引き グラフィック描画 前へ   次へ
   

グラフィック描画


任意のサイズの矩形領域をグラフィック描画・操作するときに使うGUIオブジェクトです。
グラフィック座標は整数で表し、左上が原点 (0,0) です。
右下へ行くほど数値が大きくなります。
単位はピクセルです。
詳細については クラス解説 YKLookCanvas をご覧ください。




表示

グラフィック描画のプログラム例です。

require '/opt/yklook/swing'
require '/opt/yklook/swingcanvas'
def yki_make_display()
    can = YKLookCanvas.new( 300, 200 )
    pan = YKLookPanelFlow.new()
    pan.yk_add( can )
    yk_add( pan )
    can.yk_set_color( 'red' )
    can.yk_draw_rect( 10, 20, 30, 40 )
    can.yk_draw_oval( 50, 60, 70, 80 )
    can.yk_set_color( 'black' )
    can.yk_draw_string( '見えます', 90, 10 )
end

この例では、以下のようになります。
直線や多角形や円弧も描けます。
線の太さや文字のフォントを指定することもできます。
画像イメージを任意のサイズで表示することもできます。
レイヤー操作もできます。
任意の座標範囲にツールチップを付けることもできます。
マウスのトラッキングとラバーバンド表示もできます。

トラッキングあるいはトラックとは、通常はマウスドラッグ中のことを指します。
YKLook では、前回のマウスクリックから次のマウスクリックまでのトラッキングとラバーバンド表示もできます。

注意: このクラスのスーパークラス YKLookComponent yk_set_fore() というメソッドがありますが、これをグラフィック描画の色指定に使うことはできません。
上のプログラム例にもあるように yk_set_color() を使ってください。

注意: このクラスを使うときは、上の例にもあるように swing に加えて swingcanvas も必ずロードしてください。


状態の取得

マウス操作時にそのイベントを受け取ることにより、以下の情報が得られます。
任意の座標範囲を指定して、その範囲内でクリックされたときだけイベントを起こすことができます。
その座標範囲に名前を付けて、その名前で識別することもできます。
クリック用の座標範囲は複数指定できます。
YKLookCanvas クラスのメソッド yk_add_click_rect() を使います。

イベント処理も含めて以下の項目をご覧ください。


イベント(マウスクリック)

マウスクリックを処理するプログラム例です。

require '/opt/yklook/swing'
require '/opt/yklook/swingcanvas'
def yki_make_display()
    can = YKLookCanvas.new( 300, 200 )
    pan = YKLookPanelFlow.new()
    pan.yk_add( can )
    yk_add( pan )
    can.yk_set_listener( 'fn_callback' )
    can.yk_add_click_rect( 0, 0, 300, 200 )
end
def fn_callback( prm_event )
    ary = prm_event.yk_xy()
    msg = '座標は (' + ary[0].to_s() + ',' + ary[1].to_s() + ') です'
    yk_show_dialog_message( nil, msg )
end

マウスクリック時のイベントは YKLookEventMouseClick クラスのオブジェクトです。
詳細については クラス解説 YKLookEventMouseClick をご覧ください。

イベント処理の基本は YKLook用アプリの製作 > イベント処理 をご覧ください。

注意: このクラスを使うときは、上の例にもあるように swing に加えて swingcanvas も必ずロードしてください。


イベント(マウストラック)

マウストラックを処理するプログラム例です。
ここではマウスドラッグを処理し、ドラッグ中は長方形のラバーバンドを表示します。

require '/opt/yklook/swing'
require '/opt/yklook/swingcanvas'
def yki_make_display()
    can = YKLookCanvas.new( 300, 200 )
    pan = YKLookPanelFlow.new()
    pan.yk_add( can )
    yk_add( pan )
    can.yk_set_listener( nil, 'fn_callback' )
    can.yk_set_track_mode( 'drag', 'rect' )
end
def fn_callback( prm_event )
    ary = prm_event.yk_xy()
    fst = '開始座標は (' + ary[0].to_s() + ',' + ary[1].to_s() + ') です'
    snd = '終了座標は (' + ary[2].to_s() + ',' + ary[3].to_s() + ') です'
    yk_show_dialog_message( nil, [fst, snd] )
end

マウストラック時のイベントは YKLookEventMouseTrack クラスのオブジェクトです。
詳細については クラス解説 YKLookEventMouseTrack をご覧ください。

イベント処理の基本は YKLook用アプリの製作 > イベント処理 をご覧ください。

注意: このクラスを使うときは、上の例にもあるように swing に加えて swingcanvas も必ずロードしてください。




   
YKLook説明書 GUIオブジェクト利用の手引き グラフィック描画 前へ   次へ


Copyright (c) 2003-2010 YorozuKotowariYa Ltd.