zouyu
2025-11-27 eed98e551c817ead7965e08820d4b7adbc4a47f0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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<ContextRefreshedEvent> {
 
    @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();
            }
        });
    }
}