簡體   English   中英

如何通過java中的按鈕最小化,最大化和恢復?

[英]How to minimize, maximize and restore down through buttons in java?

我正在創建一個JavaFX 2.2程序,並且需要創建自定義UI控件(只是那些始終存在的最小化 - 最大化/恢復 - 關閉按鈕在頂部)。 我需要為此目的創建自定義按鈕,直到創建簡單。

我只需要最小化的真實代碼和最大化/恢復按鈕(關閉按鈕相當於孩子的游戲)。 最小化按鈕可將應用程序恢復到任務欄。 最大化按鈕,最大化它以適應用戶的屏幕,並在最大化時切換以恢復按鈕。 單擊恢復的按鈕后,窗口將恢復為其初始大小(1200x600)。

我試過stage.setSize(width, height); 在我的fxml文件中用於還原,但它不起作用( 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();    

具有關閉操作的控制器文件是:

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

要將階段最小化到任務欄,請為最小化按鈕設置一個與此類似的操作:

    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

您必須在主類中調用舞台對象。 這只能是可以操縱Window的舞台對象。

請參閱: http//docs.oracle.com/javafx/2/api/javafx/stage/Stage.html

最小化的代碼

  @FXML private void minimizeBut()
{
    Stage stage=(Stage) minimize.getScene().getWindow();
    stage.setIconified(true);
}

在JavaFX8中

@Override
public void start(Stage stage) {
    //Maximized
    stage.setMaximized(true);

    //Restore down
    stage.setMaximized(false);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM