Вот пример работающей программы, которая покажет вам, как закрыть 1 окно или все окна
public class Main extends Application {
private LineChart<Number,Number> lineChart;
@Override
public void start(Stage stage) {
createLinechart();
Button newWindowButton = new Button("Create window");
newWindowButton.setOnAction(event -> createWindow());
Scene scene = new Scene(newWindowButton);
stage.setScene(scene);
stage.show();
}
private void createWindow(){
VBox vBox = new VBox();
vBox.getChildren().add(lineChart);
Button stageCloseButton = new Button("stage.close();");
Button platformExitButton = new Button("Platform.exit()");
Button systemExitButton = new Button("System.exit(0)");
vBox.getChildren().addAll(stageCloseButton,platformExitButton,systemExitButton);
Scene scene = new Scene(vBox);
Stage stage = new Stage();
stage.setScene(scene);
stage.show();
stageCloseButton.setOnAction(event -> stage.close());
platformExitButton.setOnAction(event -> Platform.exit());
systemExitButton.setOnAction(event -> System.exit(0));
}
private void createLinechart(){
final NumberAxis xAxis = new NumberAxis();
final NumberAxis yAxis = new NumberAxis();
xAxis.setLabel("Number of Month");
//creating the chart
lineChart = new LineChart<>(xAxis, yAxis);
lineChart.setTitle("Stock Monitoring, 2010");
//defining a series
XYChart.Series series = new XYChart.Series();
series.setName("My portfolio");
//populating the series with data
series.getData().add(new XYChart.Data(1, 23));
series.getData().add(new XYChart.Data(2, 14));
series.getData().add(new XYChart.Data(3, 15));
series.getData().add(new XYChart.Data(4, 24));
series.getData().add(new XYChart.Data(5, 34));
series.getData().add(new XYChart.Data(6, 36));
series.getData().add(new XYChart.Data(7, 22));
series.getData().add(new XYChart.Data(8, 45));
series.getData().add(new XYChart.Data(9, 43));
series.getData().add(new XYChart.Data(10, 17));
series.getData().add(new XYChart.Data(11, 29));
series.getData().add(new XYChart.Data(12, 25));
lineChart.getData().add(series);
}
public static void main(String[] args) { launch(args); }
}
Посмотрите, как вызов stage.close()
не закрывает все окна, но два других делают так, как вы закрываете только одно окно.