使用Spring Boot时,更改外观不适用于jfilechooser

时间:2019-06-13 05:48:53

标签: java spring swing spring-boot jfilechooser

我正在使用 spring boot 创建一个 swing 应用程序。并且我尝试使用的框架已在应用程序上下文中注册为组件。

    @Bean
    public UploadForm createUploadForm(){
        return new UploadForm();
    }

这就是我最初启动应用程序的方式

    public static void main(String[] args) throws Exception{
        SpringApplicationBuilder springApplicationBuilder = new SpringApplicationBuilder(Application.class);
        springApplicationBuilder.headless(false);
        ConfigurableApplicationContext context = springApplicationBuilder.run(args);
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        EventQueue.invokeLater(() -> {
            UploadForm uploadForm = context.getBean(UploadForm.class);
            uploadForm.setVisible(true);
        });
    }

,但是通过这种方式,文件选择器以相同的旧方式出现。但是如果我们使用 new UploadForm 代替 context 中的已注册bean ,则一切都很好, jfilechooser 出现在Windows外观格式中

     UploadForm uploadForm = new UploadForm();
     uploadForm.setVisible(true);

1 个答案:

答案 0 :(得分:1)

在构造bean之前,您需要设置外观。尝试在上下文创建之前将UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());行移动。