java JOptionPane与JDialog
这是Javaranch中线程的交叉帖子(包括一些图片):http://www.coderanch.com/t/567472/GUI/java/Optimal-solution-creating-multiple-dialog
我正在尝试开发一个简单的swing桌面应用程序,在这个应用程序中,我可以想象许多不同的对话框跳转来获取用户输入。需要在各种对话框窗口中显示标签、文本字段、密码字段、组合框、复选框等
例如:直接创建数据库、创建第一个管理员帐户、添加用户、更改用户帐户等
我了解JOptionPane用于创建简单的quick&;简单的模态对话框。我很想知道为什么在这种情况下人们会选择一个而不是另一个。哪一个更适合使用:JOptionPane与JDialog
此外,我还可以使用一些指针来说明如何恰当地设计和实现它
多谢各位
# 1 楼答案
看看http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html它几乎有你需要的一切
据我所知,JOptionPane的功能非常强大,但除此之外,您无法真正更改功能(不容易)。如果想创建自己的自定义对话框,最好从中继承JDialog
# 2 楼答案
下面是我在Java网站上找到的一条声明,其中提到了关于两者区别的一个关键点
How to make Dialogs
对话框可以是模态的。当模式对话框可见时,它会阻止用户输入程序中的所有其他窗口。JOptionPane创建的JDialogs是模态的。要创建非模态对话框,必须直接使用JDialog类
因此,如果你想让用户在返回主屏幕之前做出选择并关闭该框,那么听起来你会使用JOptionPane。如果您使用JDialog框,那么他们只需在其周围单击即可返回主屏幕,而无需做出选择。例如,假设您想让用户在单击“提交”之前选择结果的数量,您不希望他们能够在该窗口周围单击并单击“提交”。您可以使用JOptionPane强制他们在返回提交之前先选择一个值