如何在Swing对话框中自动执行响应?

时间:2017-02-22 21:28:43

标签: java swing joptionpane

考虑到最简单的代码:

//getDialogResponse() cannot be changed.
public static int getDialogResponse() {
    return JOptionPane.showConfirmDialog(null, "Make a really important choice.", "THE CHOICE", JOptionPane.YES_NO_CANCEL_OPTION);
}

public static void main(String[] args) {
    int[] val = new int[1];
    SwingUtilities.invokeLater(() -> {val[0] = getDialogResponse();});
    //TODO: The program itself presses the 'Yes' button.
    if(val[0] == JOptionPane.YES_OPTION) System.out.println("Good Choice.");
    else System.out.println("Wise guy, huh?!");
}

Robot似乎不合适,因为它需要知道新创建的对话框的位置,如果它不是每次都在同一个位置,它将无法工作,所以我需要知道如何获取按钮本身的位置,或者我需要知道一个不依赖于新创建的对话框位置的方法。

另外,我无法更改getDialogResponse()代码:这是一个不变量。

那我该怎么办?

1 个答案:

答案 0 :(得分:0)

Sikuli支持查找对话框/按钮并以自动方式单击它们。也许它会对你有所帮助。