2017-02-22 15 views
-2

:たびに、それは新たに作成されたダイアログボックスの場所を知る必要があるためスイングダイアログボックスでレスポンスを自動化するにはどうすればよいですか?できるだけ簡単なコードが与えられ

//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()コードを変更することはできません。これは不変式です。

どうすればいいですか?

+0

クリックできない場合は、最初にパネルを表示するのはなぜですか? –

+0

@マリアスK。単体テスト用です。通常、ユーザー*はそれをクリックすることができますが、テストが結果の動作が正しいことを確認できるように、自動的にボタンをクリックするコードが必要です。 – Xirema

+0

これはおそらく助けになるかもしれないhttp://stackoverflow.com/questions/2730044/closing-a-dialog-created-by-joptionpane-showオプションダイアログ – Massimo

答えて

0

Sikuliは、ダイアログ/ボタンを見つけて、自動化された方法でそれらをクリックすることをサポートします。おそらくそれはあなたを助けるでしょう。

関連する問題