-2
考虑可能是最简单的代码:如何自动化Swing对话框上的响应?
//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()
代码:这是一个不变量。
那么我该怎么办?
为什么在不能点击的情况下首先显示面板? –
@MariusK。这是用于单元测试的目的。通常情况下,用户会* *能够点击它,但我需要一段代码来自动点击按钮对我来说,这样的测试可以验证所产生的行为是正确的。 – Xirema
也许这可能有助于http://stackoverflow.com/questions/2730044/closing-a-dialog-created-by-joptionpane-showoptiondialog – Massimo