package com.xindao.ocr.swingui.config; import com.xindao.ocr.swingui.swing.FileProcessorApp; import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.stereotype.Component; import javax.swing.*; /** * Swing应用程序配置类,负责在Spring容器初始化完成后启动Swing界面 */ @Component public class SwingAppConfig implements ApplicationListener { @Override public void onApplicationEvent(ContextRefreshedEvent event) { // 确保在Swing事件调度线程中启动UI SwingUtilities.invokeLater(() -> { try { // 从Spring上下文获取FileProcessorApp实例 // 由于@PostConstruct注解,Spring会自动调用initialize()方法进行初始化 FileProcessorApp fileProcessorApp = event.getApplicationContext().getBean(FileProcessorApp.class); System.out.println("Swing界面已通过Spring容器自动初始化"); } catch (Exception e) { System.err.println("Swing界面初始化失败: " + e.getMessage()); e.printStackTrace(); } }); } }