2012-04-03 15 views

答えて

5

事前定義されたカーソルタイプのいずれかを使用してカーソルを変更することも、画像を供給して独自のカーソルを持たせることもできますが、システムは基になるプラットフォームのカーソルサイズのサポートに基づいて、使用される実際のカーソルサイズを決定するために使用されるアルゴリズムの詳細については、ImageCursor.getBestSize()およびImageCursor.chooseBestCursor()のドキュメントを参照してください。

import javafx.application.Application; 
import javafx.scene.*; 
import javafx.scene.layout.*; 
import javafx.stage.*; 

public class ResizableCursor extends Application { 
    public static void main(String[] args) { launch(args); } 
    @Override public void start(Stage stage) { 
    StackPane layout = new StackPane(); 
    layout.setCursor(Cursor.cursor("http://icons.iconarchive.com/icons/artua/star-wars/256/Death-Star-icon.png")); 
    stage.setScene(new Scene(layout, 200, 200)); 
    stage.show(); 
    } 
} 

あなたは、マウスカーソルのようなルックスと行為と移動します(ただし、カーソルではありません)任意のサイズのノードを持つようにしたい場合は、あなたがフォローするノードを翻訳し、その後、Cursor.NONEにカーソルを設定することができますマウスの位置(円をクリックするとthis exampleのように移動します)。この戦略を使用すると、たとえそうでなくても、ユーザーは任意のサイズのカスタムカーソルを持っているように見えます。 ImageCursor.getBestSize()に関連するドキュメントの

コピー:

指定さ 好ましいサイズに最も近いサポートされているカーソルのサイズを取得します。プラットフォームが カスタム・カーソルをサポートしていない場合は、(0,0)の値が戻されます。

注:サイズがサポートされている のサイズ(この方法で返されるサイズ)と一致しないイメージが使用されている場合、実装では イメージのサイズがサポートされているサイズに変更されます。これにより品質が低下する可能性があります。

注:これらの値は、オペレーティング・システム、グラフィックスカード と画面解像度の間で変化させることができるが、 サンプルMac、Linuxのマシンが返されながらこれを書いている時点で、サンプル Windows Vistaのマシンは、すべての要求されたサイズの32×32を返さ要求されたサイズは最大で 、最大サイズは64x64です。アプリケーションは32x32カーソルを提供する必要があります。 はすべてのプラットフォームでうまく動作し、サポートされているプラ​​ットフォームには、 64x64カーソルを提供することもできます。

0
VBox vBoxMainLayout = new VBox(); 
Scene scene = new Scene(vBoxMainLayout); 

Image img = newImage(getClass().getResourceAsStream("image.png")); 
ImageCursor cursor = new ImageCursor(img, 30, 30); 
scene.setCursor(cursor); 
+0

は私のコードです。ちなみに、古いバージョンのJavaでは、JavaFX 2.xで可能なように見えますが、見つけられませんでした。 –

+0

これはすでに実現していると思いますが、そうでない場合は、ImageCursorのサイズではなく、30,30のパラメータがImageCursorのホットスポットの座標を設定することに注意してください。 – jewelsea

-1
import java.awt.Toolkit; 
import javafx.scene.Cursor; 
import javafx.scene.image.Image; 

public class ColorChooser extends Cursor 
{ 

    public override function impl_getAWTCursor(): java.awt.Cursor { 

     def url = "{__DIR__}eyedropper.png"; 

     var toolkit = Toolkit.getDefaultToolkit(); 

     var image = Image{width:32 height:32 url:url}.bufferedImage; 
     var hotspot = new java.awt.Point(0,15); 
     var cursor = toolkit.createCustomCursor(image, hotspot "colorpicker"); 

     return cursor; 
    } 
} 
+0

しかし、このコードは古いバージョンです。 –

関連する問題