示例
package com.maizi.javafxdemo.stage学习;
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.image.Image;
import javafx.stage.Stage;
/**
* @Description: 方法说明....
* @Date: 2021-10-25 20:51:46
* @param {*}
* @return {*}
* @LastEditors: Do not edit
*/
public class FX_Stage extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("学习stage");
primaryStage.getIcons().add(new Image("file:/icon.png"));
primaryStage.setIconified(false); // false: 最大化 和 true: 最小化
primaryStage.setMinWidth(800);
primaryStage.setMinHeight(500);
primaryStage.setResizable(true); // false: 设置不可改变窗口
primaryStage.setX(1000);
primaryStage.setY(500);
// 动态获取高度和宽度
primaryStage.heightProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
System.out.println("height: " + oldValue + " height: " + newValue);
}
});
primaryStage.widthProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
System.out.println("width: " + oldValue + " width: " + newValue);
}
});
// 窗口关闭事件, 还有其他的一些事件处理。
primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent event) {
System.out.println("关闭");
}
});
// 设置全屏, 必须设置scene(场景), 在上面可以设置为多个布局
// primaryStage.setFullScreen(true);
// primaryStage.setScene(new Scene(new Group()));
primaryStage.show();
// 获取高度 和 宽度
double width = primaryStage.getWidth();
double height = primaryStage.getHeight();
System.out.println("width: " + width + " height: " + height);
}
}
primaryStage.setOpacity(1); // 设置透明度, 0:完成透明
primaryStage.setAlwaysOnTop(true); // 你点击其他窗口,永远在最上面。
primaryStage.xProperty().addListener(new ChangeListener<Number>() { // 获取窗口的,离屏幕左上角的位置
@Override
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
System.out.println("old width:" + oldValue + " new width:" + newValue);
}
});
// property 属性有很多方法。
package com.maizi.javafxdemo.stage学习;
import javafx.application.Application;
import javafx.stage.Modality;
import javafx.stage.Stage;
public class Fx_Stage_03 extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
Stage s1 = new Stage();
s1.setTitle("窗口1号");
s1.show();
Stage s2 = new Stage();
s2.setTitle("窗口2号");
s2.initOwner(s1);
s2.initModality(Modality.WINDOW_MODAL); // 在window中, 点击的时候,会出现window的时候会一闪一闪的。
s2.show();
Stage s3 = new Stage();
s3.setTitle("窗口3号");
// s3.initStyle(StageStyle.DECORATED); // 默认
// s3.initStyle(StageStyle.TRANSPARENT); // 透明
// s3.initStyle(StageStyle.UNDECORATED);// 没有关闭 ,扩大, 缩小的 按钮
// s3.initStyle(StageStyle.UNIFIED); // 和第一个没什么区别
// s3.initStyle(StageStyle.UTILITY); // 只有关闭, 没有扩大和缩小
// s3.initModality(Modality.APPLICATION_MODAL); // 这个模态,
// 会让其他的窗口不被聚焦,只有当前这个窗口被关闭了,其他的才可以聚焦。
s3.show();
// Platform.exit(); // 直接全部退出
}
@Override
public void stop() throws Exception {
super.stop();
System.out.println("平台全部退出");
}
}
stage
Stage是用于修改外观,标题,位置等的对象。 window,Scene用于布局和处理事件等。
「真诚赞赏,手留余香」
真诚赞赏,手留余香
使用微信扫描二维码完成支付