Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

StageStyleを指定してみる

昨日のブログ、軽い気持ちで書いたプログラムだったので、思ったより反応があってびっくりでした…(^^;

Java EEより反応いいんじゃ…

……

@skrbさんから


というコメントを頂いたので、早速試してみました(^^)

StageStyleとは?

その名の通り、Stageのスタイルに設定できる列挙型とのこと。

http://docs.oracle.com/javafx/2/api/javafx/stage/StageStyle.htmlf:id:kikutaro777:20131007191758j:plain

Applicationクラスを継承したMakiMakiImageViewerクラスはNetBeansの自動生成まかせのままで昨日のブログには載せていなかったのですが、以下のような感じで、1行追加しました。

package makimakiimageviewer;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

public class MakiMakiImageViewer extends Application {
    
    @Override
    public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("MakiMakiImageView.fxml"));
        
        Scene scene = new Scene(root);
        
        stage.setScene(scene);
        
        //TRANSPARENTを指定してみる
        stage.initStyle(StageStyle.TRANSPARENT);
        
        stage.show();
    }

    /**
     * The main() method is ignored in correctly deployed JavaFX application.
     * main() serves only as fallback in case the application can not be
     * launched through deployment artifacts, e.g., in IDEs with limited FX
     * support. NetBeans ignores main().
     *
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }
}

結果

昨日の実行結果は以下でした。

f:id:kikutaro777:20131007192312j:plain

で、上記プログラムの実行結果は

f:id:kikutaro777:20131007192652j:plain

拡大してるとイマイチわかりませんね(^^;ひいてみます。

昨日のプログラム

f:id:kikutaro777:20131007193414j:plain

今日のプログラム

f:id:kikutaro777:20131007193438j:plain

画像だとわかりにくいですが、実際に動いてるものをみるとだいぶ印象が違います!!

ちなみに値を色々変えてみましたが

StageStyle.DECORATEDを指定した場合(昨日と同じ)

f:id:kikutaro777:20131007193710j:plain

StageStyle.UTILITYを指定した場合

f:id:kikutaro777:20131007193800j:plain
わかりにくいですが、右上の最小化・最大化ボタンが消えてます。

StageStyle.TRANSPARENTを指定した場合

f:id:kikutaro777:20131007193855j:plain

今回のサンプルではStageStyle.UNDECORATEDもこれと同じでした。

画像のエリア以外を透明に

縦画像の場合、こんな感じです。

f:id:kikutaro777:20131007194254j:plain

で、SceneにsetFill(null)を指定してみました。すっきり!

f:id:kikutaro777:20131007194330j:plain

Scene scene = new Scene(root);
scene.setFill(null);

たいしたプログラム書いていないのですが、結構それっぽいプログラムができて楽しい!
やばいです。JavaFX面白いw

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村