Представление JFrame синхронно

У меня есть этот основной JFrame (назовем его DrinkChooser), который показывает другой JFrame сложного подтверждения (назовем его ConfirmWin).

ConfirmWin имеет только две кнопки JButton: подтвердить и отменить.

Я хочу сделать это:

(в DrinkChooser предположим, что drinkChoosen — это Drink[])

public void handleAction(){
int choice = ConfirmWin.showDrinkConfirmation(drinksChoosen);

if(choice == ConfirmWin.CONFIRM)
//Handle confirmation.
else
//handle cancel, do nothing.
}

Я хочу добиться эффекта, максимально приближенного к «эффекту JOptionPane», который заключается в том, что исходный DrinkChooser приостанавливается, а ConfirmWin возвращает выбор пользователя.

Спасибо.


person Mazyod    schedule 30.01.2011    source источник


Ответы (2)


Взгляните на след Как создавать диалоги.

Диалоговое окно — это независимое подокно, предназначенное для отображения временных уведомлений отдельно от основного окна приложения Swing. Большинство диалоговых окон предоставляют пользователю сообщение об ошибке или предупреждение, но диалоговые окна могут отображать изображения, деревья каталогов или почти все, что совместимо с основным приложением Swing, которое ими управляет.

Для удобства некоторые классы компонентов Swing могут напрямую создавать и отображать диалоговые окна. Для создания простых стандартных диалогов используется класс JOptionPane.

Вот, возможно, связанный с этим вопрос:

person aioobe    schedule 30.01.2011
comment
Отлично, это было очень полезно. Спасибо =) - person Mazyod; 30.01.2011

Не забывайте, что аргумент value всех методов JOptionPane.showXXXX может быть аргументом JComponent. Если вы передаете компонент (в вашем примере это может быть JList с пользовательским средством визуализации), он будет встроен в диалоговое окно и может использоваться для настройки внешнего вида.

person finnw    schedule 30.01.2011