忍者ブログ

軽Lab

 Javaを中心とした、プログラミング関係のナレッジベース

Home > JavaFX入門 > JavaFX Sceneパッケージ

JavaFX Sceneパッケージ

前回はStageパッケージを確認した。今回はSceneパッケージを見ていく。

■ Sceneパッケージに属するクラス

まずはSceneパッケージに属する主要なクラスを見ていく。ただし、Scene.Nodeクラスの子クラスはScene Graphにあたるクラスになるため、ここでは言及しない。Stageパッケージと同様こちらもクラス数は少なく、使いそうなものはマウス・カーソル程度しかない。(*1)

クラス名 内容
Scene シーンクラス。背景色や表示領域を決定する
Cursor マウス・カーソルを表すクラス。選択できるマウス・カーソルはコチラを参照のこと
ImageCursor マウス・カーソルを表すクラス。Cursorクラスとは異なり、カーソル画像をプログラマが指定できる

カーソルを変更するサンプルプログラムは以下の通り。

フォルダ構成
 TestJavaFX
 ┣src
 ┃┗application_fx
 ┃ ┗TestScene.java
 ┗img
  ┗cursor.png
package application_fx;

import java.io.File;

import javafx.application.Application;
import javafx.scene.ImageCursor;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class TestScene extends Application {

    @Override
    public void start(Stage mainStage) throws Exception
    {
        // シーングラフ作成
        Label l         = new Label( "Sceneパッケージテスト" );
        
        // シーン作成
        Scene scene = new Scene( l , 400 , 200 , Color.WHITE );
        
        // マウスカーソル変更
        // ホットスポット(カーソルが指す座標)を指定して、カーソルを作成
        String      uri     = new File("img/cursor.png").toURI().toString();
        Image       img     = new Image( uri );
        ImageCursor cursor  = new ImageCursor( img , img.getWidth() / 2 , img.getHeight() );
        scene.setCursor( cursor );
                
        // ステージ設定・ウィンドウ表示
        mainStage.setScene( scene );
        mainStage.show();

    }
    
    public static void main(String[] args)
    {
        launch(args);
    }
}

カーソル画像(cursor.png)


実行結果


以下、ソースコードの説明。
28行目で画像カーソルを生成している。第1引数はカーソルに指定する画像である。第2引数と第3引数はホットスポットの座標を指定する。ホットスポットとは『クリックしたときに、クリックされたとみなされる位置』である。よくある矢印カーソルで言えば、矢印の先のこと。今回は電球の電極部分の先端を設定している。

■ 参照

  1. JavaDoc - Hierarchy For Package javafx.scene

Home > JavaFX入門 > JavaFX Sceneパッケージ

- ランダム記事 -
- PR -

コメント

プロフィール

管理者:
 連絡はContactよりお願いします。

PR