6

デスクトップにステージを貼り付けることはできますか?

アプリケーションをウィジェットとして動作させたいので、起動時に、開いている可能性のある現在のアプリケーションの前ではなく、デスクトップの真上に表示する必要があります。

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

4

1 に答える 1

6

JavaFX 2.2 でこれを試したところ、次の結果が得られました。

そのため、起動時に、開いている可能性のある現在のアプリケーションの前ではなく、デスクトップの真上に表示する必要があります

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

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

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();
  }
});

ステージを常に一番上に設定する機能に対する既存の要求があります。ステージが常に遅れる機能に対応する新しいリクエストを作成できます。

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

Windows では、ステージ スタイルStageStyle.UTILITYに初期化すると、Windows タスクバーにステージのアイコンが表示されないと思います。

OS X でいくつかの異なるステージ スタイルを試してみましたが、アプリを実行したときに小さな Java カップ アイコンが常に OS X ドックに表示され、(Windows とは異なり)ステージのアイコンを設定しても Java カップ アイコンが削除されませんでした。 . おそらく、自己完結型のOS X アプリケーションを作成した場合、パッケージ化の段階でアイコンをオフにするか、アイコンを透明な画像に設定して、ユーザーに見えないようにすることができます。

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

于 2013-03-30T09:24:04.903 に答える