У меня не получалось, когда пытался использовать:
JOptionPane.showConfirmDialog(...)
Но -
Я нашел решение!
Очень примитивно, но работает.
Просто прыгайте на поле с помощью java.awt. Робот с помощью клавиши «Tab».
Например:
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_TAB);
robot.delay(100);
robot.keyRelease(KeyEvent.VK_TAB);
Если вам нужно нажать несколько раз на «Tab», чтобы получить ваш компонент, вы можете использовать следующий метод:
GUIUtils.pressTab(3);
Определение:
public static void pressTab(int amountOfClickes)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
try
{
Robot robot = new Robot();
int i = amountOfClickes;
while (i-- > 0)
{
robot.keyPress(KeyEvent.VK_TAB);
robot.delay(100);
robot.keyRelease(KeyEvent.VK_TAB);
}
}
catch (AWTException e)
{
System.out.println("Failed to use Robot, got exception: " + e.getMessage());
}
}
});
}
Если местоположение вашего компонента является динамическим, вы можете без ограничений запустить цикл while, но добавьте слушателя фокуса на компонент, чтобы остановить цикл после его прибытия.