我必须创建一个应用程序,其中最小化和最大化按钮将被禁用。
我已经使用了"StageStyle.UNDECORATED"
,应用程序将不再可移动或可拖动,所以我正在寻找任何其他替代方案来进行我的应用程序。
有没有人有这方面的解决方案?
要实现未装饰但仍可移动/可拖动的窗口,您必须在您选择的任何节点上处理相应的qazxsw poi。
例:
MouseEvent
从Oracle JavaFX下载页面中包含的非常有价值的示例中了解更多信息:import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class SimpleWindowApplication extends Application {
private double xOffset = 0;
private double yOffset = 0;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(final Stage primaryStage) {
primaryStage.initStyle(StageStyle.UNDECORATED);
BorderPane root = new BorderPane();
root.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
xOffset = event.getSceneX();
yOffset = event.getSceneY();
}
});
root.setOnMouseDragged(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
primaryStage.setX(event.getScreenX() - xOffset);
primaryStage.setY(event.getScreenY() - yOffset);
}
});
Scene scene = new Scene(root, 800, 600);
primaryStage.setScene(scene);
primaryStage.show();
}
}
这个类的唯一目的是允许拖动未修饰的Window。它还执行以确保TaskBar在FullScreen中保持可见的任务,并确保未将未修饰的窗口拖出屏幕。最后,它提供了错误修复“css资源未找到”。只需在舞台显示为关闭时或之后显示时,只需在重写的start()方法中将主代码中的代码粘贴到下面。
JavaFX Demos and Samples
注意:当舞台处于关闭准备状态时或之后,粘贴上面的内容。对于全屏窗口使用:
WindowStyle.allowDrag(root, stage);
WindowStyle.stageDimension(stage.getWidth(), stage.getHeight());
要重新调整以前的用法:
WindowStyle.fullScreen(Stage stage);
要在场景中添加自定义样式表,请在定义场景后,在重写的start()方法中将主题类中的代码粘贴到下面。
WindowStyle.restoreScreen(Stage stage);
用于样式的css名称可以采用以下形式:scene.getStylesheets().add(WindowStyle.addStyleSheet(String css));
或main.css
styles/main.css