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

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