FXML项目 - 在满足条件时创建新阶段

时间:2017-09-24 21:20:07

标签: java model-view-controller javafx fxml

我需要创建一个带有方法的类,用一个新的FXML文件创建一个新的阶段,该文件在同一个包中(我已经覆盖了它)。我遇到问题的地方是关闭前一阶段的过程。我希望有一个具有专用方法的类(静态或在需要时创建该类的实例)。

基本上我需要一个en调用的方法:

  1. 使用FXML文件创建一个新阶段,该文件将作为参数传递。
  2. 调用该方法时,前一阶段必须关闭,只剩下一个阶段(新阶段)。
  3. 感谢先进的问候。enter image description here

1 个答案:

答案 0 :(得分:0)

要做你想问的问题,首先需要关闭当前阶段。为此,您需要将场景(第一个或您要关闭的场景)作为参数传递或访问场景的任何元素。

如果要将场景作为参数传递,可以使用

执行此操作
REM set up the TODAY variable
REM -----
for /f "tokens=1-3 delims=/ " %%a in ('date /T') do set year=%%c
for /f "tokens=1-3 delims=/ " %%a in ('date /T') do set month=%%b
for /f "tokens=1-3 delims=/ " %%a in ('date /T') do set day=%%a
set TODAY=%year%%month%%day%
REM -----

:: yesterdays date
@echo off
set day=-1
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& 
right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a"
del "%temp%\%~n0.vbs"
set "YY=%result:~2,2%"
set "MM=%result:~4,2%"
set "DD=%result:~6,2%"
set "data=%mm%-%dd%-%yy%"

xcopy D:\YourFolder D:\BAK\BAK_%TODAY% /S /D:%data%  /C /R /I /K /Y

如果你想通过访问第一个场景的任何元素来做...假设你在第一个fxml文件中有一个名为button1的按钮,那么你可以通过

获得舞台

private void openNewStage(Scene curScene) throws IOException{ Stage stage1 = (Stage) curScene.getWindow(); stage1.close(); Stage stage2 = new Stage(); Parent root = FXMLLoader.load(getClass().getResource("/application/fxml2.fxml")); Scene scene = new Scene(root,300,300); scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); stage2.setScene(scene); stage2.setTitle("Seceond stage"); stage2.show(); }