java - 使用 UISpec4J 获取所有窗口

标签 java swing uispec4j

我正在尝试使用UISpec4J为了自动化 Java Swing 应用程序。适配器设置后:

setAdapter(new MainClassAdapter(Main.class, new String[0]));

我正在尝试获取主窗口:

Window mainWindow = getMainWindow();

我得到的不是登录对话框,而是带有应用程序 Logo 的启动屏幕。我手动调用此对话框的所有尝试都失败了。

如何获取打开的对话框/窗口的列表?

最佳答案

看起来MainClassAdapter并不是为处理一系列窗口而设计的。但是,您可以实现自己的适配器,忽略启动屏幕并返回后续窗口。这是取自 UISpec4J forums 的示例:

setAdapter(new UISpecAdapter() {
    public Window getMainWindow() {
        final Window[] result = new Window[1];
        WindowInterceptor.init(new MainClassTrigger(Main.class, new String[0]))
            .processTransientWindow()
            .process(new WindowHandler() {
                public Trigger process(Window window) throws Exception {
                result[0] = window;
                return Trigger.DO_NOTHING;
                }
            })
        .run();
        return result[0];
    }
});

关于java - 使用 UISpec4J 获取所有窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9539549/

相关文章:

自动增长并可重复使用的 Java Char Buffer

java - 如何在 forEach 中执行操作并将其传递给 Java 流中的 groupingBy

java - 如何在 spring-mvc 中为响应启用多个内容类型?

java - 滚动到 JTable 中最后添加的行

java - 在哪里存储一致的应用程序属性?

java - Javax Swing GUI 应用程序的单元测试问题 - 合适的 JDK 7 选项?

Java jmap -heap 命令给出了 OutOfMemoryError

java - 将对象添加到 JPanel

java - UISpec4J - AbstractMethodError(UISpecToolkit.createKeyboardFocusManagerPeer)