2013-03-29 10 views
5

ステージをデスクトップに貼り付けることは可能ですか?JavaFX-Widgetの作成方法

私のアプリケーションをウィジェットとして動作させたいので、起動時にデスクトップ上に表示され、現在開いているアプリケーションの前には表示されません。

ウィジェットのもう1つの条件は、タスクバーにエントリがないことです。それも可能ですか?

+0

http://www.youtube.com/watch?v=IFIlr6cpX64 –

+0

これはJavaで直接行うことはできません.HTMLとJavaScriptで構築されています。 –

答えて

6

私はJavaFXの2.2でこれを試してみましたが、次のような結果ました:それは起動時に

はそれが右のデスクトップ上ではなく

を開くかもしれない現在のアプリケーションの手前に表示されます

stage.toBackを呼び出すと、他のウィンドウの後ろにステージが配置されます。

ほとんどの場合、他のウィンドウの後ろに常にウィンドウを表示することができました(少なくともMacでは)。これを行うために、ステージを表示する前にいくつかのリスナーとフィルターを追加してclock applicationに入れました。

stage.focusedProperty().addListener(new ChangeListener<Boolean>() { 
    @Override 
    public void changed(ObservableValue<? extends Boolean> observableValue, Boolean wasFocused, Boolean focused) { 
    stage.toBack(); 
    } 
}); 

stage.addEventFilter(MouseEvent.ANY, new EventHandler<MouseEvent>() { 
    @Override 
    public void handle(MouseEvent mouseEvent) { 
    stage.toBack(); 
    } 
}); 

stage to always be on topを設定するための既存の要求があります。ステージの能力が常に遅れているという新しい対応要求を作成することができます。

ウィジェットの他の条件は、それはタスクバーのWindows上で

にエントリを持っていないことになり、私はあなたinit the stage styleStageStyle.UTILITYの場合、Windowsは、ステージ内のアイコンが表示されないと思いますWindowsのタスクバー。

OS Xでいくつかのステージスタイルを試してみましたが、アプリケーションを実行したときにOS Xのドックに小さなJavaのアイコンが表示されました(ウィンドウとは異なります)。icons for the stageはJavaのカップアイコン。おそらく、self-contained OS Xアプリケーションを作成した場合は、パッケージングステップ中にアイコンをオフにするか、透明なイメージにアイコンを設定してユーザーに表示されないようにすることができます。

また、JavaFX issue trackerには、これに対応する機能リクエストを作成することもできます。これに関連する問題を作成する場合は、ユースケースを説明し、この質問にリンクし直してください。

+0

このソリューションは、ウィンドウ上で私にとって完璧に機能しましたが、タスクバーからウィンドウを隠す必要はありません。 JavaFX 8では、「alwaysOnTop」機能を備えているので、ウィンドウが常に遅れてしまうようにする必要があります。まだ公式問題追跡システムの問題があるかどうか誰かが知っていますか? – RegisteredUser

+0

機能要求が作成されているかどうかわかりません。必要に応じて、issueトラッカーを検索し、既存のフィーチャーリクエストがまだない場合は作成することができます。 – jewelsea

関連する問題