我知道System.exit(0)和Platform.exit()以及stage.close(),但是所有这些都杀死了所有阶段。有什么想法可以杀死一个阶段吗?我的意思是杀死/关闭,而不是躲藏。
编辑: 我将确切说明我的问题是什么。 我上了这样的课:
public class Controller extends Application implements Serializable {
private LineChart<String,Number> lineChart;
public void btn(javafx.event.ActionEvent actionEvent) throws IOException {
Stage stage = new Stage();
Scene scene = new Scene(lineChart,400,400);
stage.setScene(scene);
stage.show();
stage.setOnCloseRequest( e-> stage.hide());
}
}
我在Controllers构造函数中创建了一个新的LineChart。问题是,当我在同一控制器上第二次(或更多次)调用btn()方法时,出现错误“ IllegalArgumentException:LineChart已设置为另一个场景的根目录”。当我以setOnCloseRequest调用Platform.exit()/ stage.close()/ stage.hide()/ System.exit(0)时,我的主窗口(带有菜单等)也在关闭,我所期待的只是关闭带有LineChart的窗口。
答案 0 :(得分:0)
这是一个可运行的示例程序,向您展示如何关闭1个窗口或所有窗口
import
了解调用type="module"
不会关闭所有窗口的方法,而其他两个方法则是仅关闭一个窗口的方法。