JavaFX 不通过 stop() 方法停止应用程序

标签 java javafx

我有以下抽象类,具有 init()stop() 方法: (stop() 方法中的问题)

public abstract class AbstractJavaFxApplication extends Application {

    private static String[] fxArgs;

    protected ConfigurableApplicationContext applicationContext;

    @Override
    public void init() throws Exception {
        applicationContext = SpringApplication.run(getClass(), fxArgs);
        applicationContext.getAutowireCapableBeanFactory().autowireBean(this);
    }

    @Override
    public void stop() throws Exception {
        System.out.println("STOP");
        applicationContext.stop();
        super.stop();
    }

    protected static void launchApp(Class<? extends AbstractJavaFxApplication> clazz, String[] args){
        fxArgs = args;
        Application.launch(clazz, args);
    }
}

主类,它扩展了AbstractJavaFxApplication:

@SpringBootApplication
public class WeightliftingviewerApplication extends AbstractJavaFxApplication{

    @Value("First attempt")
    private String tittle;

    @Qualifier("mainView")
    @Autowired
    private ControllersConfiguration.ViewHolder view;

    public static void main(String[] args) {
        launchApp(WeightliftingviewerApplication.class, args);
//      SpringApplication.run(WeightliftingviewerApplication.class, args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle(tittle);
        primaryStage.setScene(new Scene(view.getView()));
        primaryStage.setResizable(true);
        primaryStage.centerOnScreen();
        primaryStage.show();
    }
}

问题在于,当我关闭应用程序时,我预计会命中 stop() 方法并在控制台中获取 STOP 。但应用程序尚未停止,仍在运行

最佳答案

在您的停止方法中尝试一下:

@Override
public void stop() throws Exception {
    System.out.println("STOP");
    Platform.exit();
    System.exit(0);
}

关于JavaFX 不通过 stop() 方法停止应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53480049/

相关文章:

java - 有没有办法让只有 FileDescriptor 的文件大小?

java String hashcode缓存机制

JavaFX 绑定(bind)仅在调整窗口大小后应用

java - 在 JavaFX 中调整窗口大小时动态调整图形大小

JavaFX 无法设置自定义属性

java - 为什么 JavaFX TableView#setItems 采用 ObservableList<T> 而不是 ObservableList<?扩展 T>?

java - 更新到 gradle 3.3 后构建失败

java - 防止 KeyListener 中的字符添加到字符串中

java - 从字符串列表中删除字符串项

java - 从框架按钮单击打开小程序