JavaFX Stage

Stage

尺寸

primaryStage.setWidth(600);
primaryStage.setHeight(600);
primaryStage.setMaxWidth(1000);
primaryStage.setMaxHeight(800);
primaryStage.setMinWidth(300);
primaryStage.setMinHeight(300);

//不可改變窗口大小
primaryStage.setResizable(false);

獲取寬高

//show之後獲取
double width = primaryStage.getWidth();
double height = primaryStage.getHeight();

樣式

//標題
primaryStage.setTitle("JavaFX");
//圖標
primaryStage.getIcons().add(new Image("image\\portrait.jpg"));

//啓動最小化
primaryStage.setIconified(true);
//啓動最大化
primaryStage.setMaximized(true);

//全屏 需要設置Scene
primaryStage.setFullScreen(true);
FlowPane root = new FlowPane();
primaryStage.setScene(new Scene(root, 800, 500));

//透明度
primaryStage.setOpacity(0.5);
//置頂
primaryStage.setAlwaysOnTop(true);
//初始位置
primaryStage.setX(100);
primaryStage.setY(200);

//設置窗口Style
primaryStage.initStyle(StageStyle.UNDECORATED);
//顯示
primaryStage.show();

//設置模態
Stage stage = new Stage();
stage.setWidth(300);
stage.setHeight(300);
stage.show();

Stage stage2 = new Stage();
stage2.initOwner(stage);
stage2.setWidth(200);
stage2.setHeight(200);
//stage2 相對於 stage
stage2.initModality(Modality.WINDOW_MODAL);
//相對於整個應用
stage2.initModality(Modality.APPLICATION_MODAL);
stage2.show();

//關閉
primaryStage.close();

監聽

監聽窗口大小改變

primaryStage.widthProperty().addListener(new ChangeListener<Number>() {
    @Override
    public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
        System.out.println("observable = " + observable + ", oldValue = " + oldValue + ", newValue = " + newValue);
    }
});

監聽位置改變

primaryStage.xProperty().addListener(new ChangeListener<Number>() {
    @Override
    public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
        System.out.println("observable = " + observable + ", oldValue = " + oldValue + ", newValue = " + newValue);
    }
});

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章