Java/JavaFX/その他

Top > Java > JavaFX > その他

その他

仕事中などに、気になったことや、忘れそうなことをメモっておきます。
後で調べたり、sampleコードなど、後で役に立てばいいな。

選択範囲を囲む

ドラックで指定した範囲がわかりやすいように選択範囲の外枠を赤で表示する。
矢印のカーソルしかないのでそれは表示させずアプリの中だけオリジナルのカーソルポインタを用意。と言ってもただの円を表示。

	//座標
	var xStart: Number = 0;
	var yStart: Number = 0;
	var xDorg: Number = 0;
	var yDorg: Number = 0;
	var xEnd: Number = 0;
	var yEnd: Number = 0;
	//カーソルポイント表示非表示
	var flg = false;
	Stage {
	    title : "Line"
	    scene: Scene {
	        width: 300
	        height: 300
	        content: [  
	            Rectangle {
	                x: 10, y: 10
	                width: 280, height: 280
	                fill: Color.YELLOW
	                onMouseMoved: function( e: MouseEvent ):Void {
	                    flg = false;
	                    xDorg = 0;
	                    yDorg = 0;
	                    xStart = e.x;
	                    yStart = e.y;
	                }
	                //範囲指定開始
	                onMousePressed: function( e: MouseEvent ):Void {
	                    xDorg = 0;
	                    yDorg = 0;
	                    xStart = e.x;
	                    yStart = e.y;
	                    flg = true;
	                }
	                //指定範囲ドラッグ
	                onMouseDragged: function( e: MouseEvent ):Void {
	                    xDorg = e.dragX;
	                    yDorg = e.dragY;
	                }
	                //範囲指定終了
	                onMouseReleased: function( e: MouseEvent ):Void {
	                    xStart = e.x;
	                    yStart = e.y;
	                    flg = false;
	                }
	                //範囲から出る
	                onMouseExited: function( e: MouseEvent ):Void {
	                    flg = true
	                }
	            }
	            //選択範囲を囲む
	            Polygon {
	                points : bind[
	                    xStart, yStart,//左上
	                    xStart + xDorg, yStart,//右上
	                    xStart + xDorg, yStart + yDorg,//右下
	                    xStart,yStart + yDorg//左下
	                ]
	                fill: null
	                strokeWidth:2
	                stroke: Color.RED
	                visible:bind flg
	            },
	            //カーソルポイント
	            Circle {
	                centerX: bind xStart, centerY: bind yStart
	                radius: 2
	                fill: Color.RED
	                visible:bind not flg
	            }
	        ]
	    }
	}

カーソルポインターはもっとカッコ良くしたい。

ドラックイメージ移動

大きいイメージを枠内でドラック移動させる。

	import java.awt.image.BufferedImage;
	import java.io.File;
	import javafx.scene.image.Image;
	import javafx.scene.image.ImageView;
	import javafx.scene.input.MouseEvent;
	import javafx.scene.Scene;
	import javafx.stage.Stage;
	import javax.imageio.ImageIO;
	/**
	 * @author DAIDOUJI
	 BufferedImageでイメージ取得
	ドラックでイメージを移動する 
	 */
	//座標
	var x: Number = 0;
	var y: Number = 0;
	//座標保持
	var xp: Number = 0;
	var yp: Number = 0;
	//イメージ取得
	var b:BufferedImage = ImageIO.read(new File("C:/Documents and Settings//aza.jpg"));
	//Imageクラスに変換
	var image:Image =Image.fromBufferedImage(b);
	Stage {
	    title : "MyApp"
	    scene: Scene {
	        width: 300
	        height: 300
	        content: [
	            ImageView {
	                translateX: bind x
	                translateY: bind y
	                image: bind image                
	                //ドラック移動距離
	                onMouseDragged: function( e: MouseEvent ):Void {
	                    x = e.dragX+xp;
	                    y = e.dragY+yp;
	                }
	                //現在の座標
	                onMouseReleased: function( e: MouseEvent ):Void {
	                        xp=x;
	                        yp=y;
	                }
	            }   
	        ]
	    }
	}

onMouseDragged?

マウスドラックイベント

ドラック移動距離を取得し現在の座標を更新。

e.dragXはドラックした距離のみ取得するので現在の座標を加えて修正する。

onMouseReleased?

マウスを話したときのイベント

現在の座標を保持する。


アクセス総数4124件

最終更新日: 2009-09-03 (木) 22:46:54 (2759d)

このページをブックマーク:

このページのURL(コピペして利用下さい):

TOP