同步呈现JFrame

时间:2011-01-30 11:56:17

标签: java confirmation joptionpane event-dispatch-thread

我有这个主要的JFrame(称之为DrinkChooser),显示另一个复杂的确认JFrame(称之为ConfirmWin)。

ConfirmWin只有两个JButton,确认并取消。

我想这样做:

(在DrinkChooser中,假设drinkChoosen是一种饮料[])

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

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

我希望获得尽可能接近“JOptionPane效果”的效果,即原始DrinkChooser被暂停,并且ConfirmWin返回用户的选择。

感谢。

2 个答案:

答案 0 :(得分:1)

查看路径How to Make Dialogs

  

对话框窗口是一个独立的子窗口,用于在主Swing应用程序窗口之外进行临时通知。大多数对话框向用户显示错误消息或警告,但对话框可以显示图像,目录树或与管理它们的主Swing应用程序兼容的任何内容。

     

为方便起见,几个Swing组件类可以直接实例化和显示对话框。要创建简单的标准对话框,请使用JOptionPane类。

这是一个可能相关的问题:

答案 1 :(得分:1)

不要忘记所有value方法的JOptionPane.showXXXX参数都可以是JComponent。如果您传递一个组件(在您的示例中,它可能是一个带有自定义渲染器的JList),它将嵌入到对话框中,并可用于自定义外观。