11

javafx2 でウィンドウの装飾を解除しました。今、私はアクションによってウィンドウを最小化したいと考えています。これは私のコードです

    minIcon.setOnMouseClicked(new EventHandler<MouseEvent>() {
        public void handle(MouseEvent me) {
            primaryStage.toBack();
        }
    });

別のウィンドウが開いている場合、ウィンドウは元に戻ります。そうでなければそうではありません。これを行う方法を教えてください。

4

2 に答える 2

42

何度か検索した後、自分で答えを見つけました。

minIcon.setOnMouseClicked(new EventHandler<MouseEvent>() {
    public void handle(MouseEvent me) {
        primaryStage.setIconified(true);
    }
});

これはうまくいきます..

于 2012-12-13T06:56:51.207 に答える
1

次のコードが機能するはずです。

iconid.setOnMouseClicked( event -> {
  Stage obj = (Stage) iconid.getScene().getWindow();
  obj.setIconified(true);
});

編集:私はここに来たばかりなので、コードをより適切に提示する方法を知りませんでした。というわけで頑張ります。

expln は次のとおりです:- 変数の意味- iconid: ImageView 要素の fxid。 obj : 宣言できるランダムなステージ オブジェクト。

これevent ->{}はラムダ関数であり、作業が減るため、頻繁に使用します。

2 行目で行うことは、新しいステージ オブジェクトを作成し、それを現在表示されているステージと同一視することです。これは、.getScene().getWindow()プロパティを使用して取得されます。一貫性を保つために同じ ImageView 要素を使用しましたが、同じステージに属する任意の要素を使用できます (同じウィンドウのボタンなど)。

3行目はメソッドを呼び出す場所ですsetIconified(boolean)[最適な命名方法ではありませんが、タスクバーに「アイコン化」してウィンドウからアイコンに変えることに関係していると思います]「true」に設定すると、指定したウィンドウが最小化されます. それはそれについてです。

于 2020-12-05T19:13:10.883 に答える