7

私はJavaFX 2.2プログラムを作成しており、カスタムUIコントロールを作成する必要があります(上部に常に存在する最小化-最大化/復元-閉じるボタンのみ)。そのためにカスタムボタンを作成する必要があります。作成するまでは簡単です。

最小化と最大化/復元ボタンの実際のコードが必要です (閉じるボタンはかなり子供の遊びでした)。最小化ボタンは、アプリをタスクバーに復元します。最大化ボタンは、ユーザーの画面に合わせて最大化され、最大化されている間は復元ボタンに切り替わります。復元されたボタンをクリックすると、ウィンドウは初期サイズ (1200x600) に復元されます。

fxml ファイルで復元を試みstage.setSize(width, height);ましたが、機能しません (stageステージ名はステージですが、エラーとして強調表示されます)

    scene.setFill(Color.TRANSPARENT);
    stage.initStyle(StageStyle.TRANSPARENT);

デフォルトのウィンドウを透明に設定します。

プログラム(コントローラーではなくメインファイル)は次のとおりです。

    Parent root = FXMLLoader.load(getClass().getResource("fxmlfile.fxml"));       

    Scene scene = new Scene(root);
    scene.setFill(Color.TRANSPARENT);
    stage.initStyle(StageStyle.TRANSPARENT);

    stage.setTitle("Nothing here");
    stage.setScene(scene);
    stage.show();    

close アクションを含むコントローラ ファイルは次のとおりです。

@FXML
private void exitProgramAction(ActionEvent exitProgramEvent) {        
    System.out.println("Killing program...");
    System.exit(0);
}
4

4 に答える 4

6

タスク バーにステージを最小化するには、次のような最小化ボタンのアクションを設定します。

    btnMinimize.setOnAction(new EventHandler<ActionEvent>() {

        public void handle(ActionEvent event) {
            Stage stage = (Stage)((Button)event.getSource()).getScene().getWindow();
            // is stage minimizable into task bar. (true | false)
            stage.setIconified(true);
        }
    });

私はJavaFX 8を使用しているため、JavaFX 2.2で動作するかどうかわかりません

于 2015-10-29T13:00:39.257 に答える
0

最小化のコード

  @FXML private void minimizeBut()
{
    Stage stage=(Stage) minimize.getScene().getWindow();
    stage.setIconified(true);
}
于 2014-09-22T09:12:59.553 に答える