在JavaFX中更改场景而不调整窗口大小
发布时间:2020-12-15 04:36:13 所属栏目:Java 来源:网络整理
导读:我正在尝试更改 JavaFX上的场景,但不改变窗口大小.但是,当我设置stage.setScene(scene2);窗口大小减小,我想保持两个场景最大化.我试过stage.setScene(scene2)之后的stage.setMaximized(true);但结果是一样的. 我该如何解决? 我的代码: package controller;
我正在尝试更改
JavaFX上的场景,但不改变窗口大小.但是,当我设置stage.setScene(scene2);窗口大小减小,我想保持两个场景最大化.我试过stage.setScene(scene2)之后的stage.setMaximized(true);但结果是一样的.
我该如何解决? 我的代码: package controller; import java.io.IOException; import javafx.animation.FadeTransition; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; import javafx.util.Duration; public class App extends Application { @Override public void start(Stage stage) throws Exception { Parent root = FXMLLoader.load(getClass().getResource("../view/fxml/Loading.fxml")); Scene scene = new Scene(root); stage.setScene(scene); stage.setTitle("Project"); stage.setMaximized(true); stage.show(); FadeTransition fadeIn = new FadeTransition(Duration.seconds(1),root); fadeIn.setFromValue(0); fadeIn.setToValue(1); FadeTransition fadeOut = new FadeTransition(Duration.seconds(1),root); fadeOut.setFromValue(1); fadeOut.setToValue(0); fadeIn.play(); fadeIn.setOnFinished((e) -> { fadeOut.play(); }); fadeOut.setOnFinished((e) -> { try { Parent root2 = FXMLLoader.load(getClass().getResource("../view/fxml/Welcome.fxml")); Scene scene2 = new Scene(root2); stage.setScene(scene2); } catch (IOException e1) { e1.printStackTrace(); } }); } public static void main(String[] args) { launch(args); } } 当我编译: 然后fadeOut / fadeIn发生并且(在这里我想保持最大化): 解决方法
替换现有场景的根源可能比创建新场景更好:
fadeOut.setOnFinished((e) -> { try { Parent root2 = FXMLLoader.load(getClass().getResource("../view/fxml/Welcome.fxml")); scene.setRoot(root2); } catch (IOException e1) { e1.printStackTrace(); } }); 如果您确实需要替换场景,出于某种原因,您可以将新场景的大小设置为与现有场景相同: fadeOut.setOnFinished((e) -> { try { Parent root2 = FXMLLoader.load(getClass().getResource("../view/fxml/Welcome.fxml")); Scene scene2 = new Scene(root2,scene.getWidth(),scene.getHeight()); stage.setScene(scene2); } catch (IOException e1) { e1.printStackTrace(); } }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 为什么Java ArrayList类返回一个布尔值来添加?
- java – JUnit测试继承不起作用
- java – 在Apache spark中,使用mapPartitions和组合使用广播
- java – 我应该在使用它们之前将我的变量初始化为null吗?
- JSP JSTL <sql:transaction>标签:事务处理
- Java List转换成String数组几种实现方式详解
- java – “部署到sonatype时收到致命警报:bad_record_mac”
- Android 列表对话框 setItems
- 使用TransactionRequiredException测试失败:加载JPA和Neo4
- javafx-2 – 有没有办法在特定时间之后隐藏舞台?