Java JOptionPane vs.JDialog

Java JOptionPane vs.JDialog,java,swing,jdialog,joptionpane,Java,Swing,Jdialog,Joptionpane,这是Javaranch中线程的交叉帖子(包括一些图片): 我正在尝试开发一个简单的swing桌面应用程序,在这个应用程序中,我可以想象许多不同的对话框跳转来获取用户输入。需要在各种对话框窗口中显示标签、文本字段、密码字段、组合框、复选框等 例如:直接创建数据库、创建第一个管理员帐户、添加用户、更改用户帐户等 我知道JOptionPane用于创建简单快捷的模态对话框。我真的很想知道为什么在这种情况下人们会选择一个而不是另一个。哪一个更适合使用:JOptionPane与JDialog 此外,我还可以

这是Javaranch中线程的交叉帖子(包括一些图片):

我正在尝试开发一个简单的swing桌面应用程序,在这个应用程序中,我可以想象许多不同的对话框跳转来获取用户输入。需要在各种对话框窗口中显示标签、文本字段、密码字段、组合框、复选框等

例如:直接创建数据库、创建第一个管理员帐户、添加用户、更改用户帐户等

我知道JOptionPane用于创建简单快捷的模态对话框。我真的很想知道为什么在这种情况下人们会选择一个而不是另一个。哪一个更适合使用:JOptionPane与JDialog

此外,我还可以使用一些指针来说明如何恰当地设计和实现它

谢谢。

看看吧,它几乎有你需要的一切


据我所知,JOptionPane的功能非常强大,但除此之外,您无法真正更改功能(不容易)。如果您想创建自己的自定义对话框,最好从中继承JDialog。

我在Java网站上找到了一条语句,它指出了两者之间的一个关键点

对话框可以是模态的。当模态对话框可见时,它会阻止用户输入程序中的所有其他窗口。JOptionPane创建模态的JDialog。要创建非模态对话框,必须直接使用JDialog类。


因此,如果您希望用户在返回主屏幕之前必须做出选择并关闭该框,那么听起来您会使用JOptionPane。如果您使用JDialog框,那么他们只需在其周围单击即可返回主屏幕,而无需做出选择。例如,假设您想让用户在单击“提交”之前选择结果的数量,您不希望他们能够在该窗口周围单击并单击“提交”。您可以使用JOptionPane强制他们在返回提交之前先选择一个值。

这是一个很好的初学者教程,介绍如何使用它们: