如何确保JDialog始终保持领先地位

mit*_*538 7 java visibility jdialog

我有一个JDialog从用户那里得到一个名字.在后面JDialog,是一个小程序.我不希望用户在输入名称之前访问该applet.我试过了JDialog.setAlwaysOnTop(true),但applet抛出了一个AccessException错误.所以我所做的是保持一个while循环,JDialog.setVisible(true)直到JtextField(用户名输入)为空("").但由于某些原因,这个工作真的很慢,意味着JDialog 负载,但是需要时间来关注JTextField,甚至当用户输入他的名字时,它变得非常慢......就像2秒内的一个角色......还有其他吗?在访问applet之前强制用户输入名称的方法?

cam*_*ckr 11

使用模态JDialog.例如,JApplet的init(...)方法中的代码可能包括:

JDialog dialog = new JDialog(SwingUtilities.windowForComponent(this));
dialog.setModal(true);
dialog.setSize(...);
dialog.setVisible( true );
Run Code Online (Sandbox Code Playgroud)

或者您可以使用JOptionPane.showInputDialog().您只需将"this"指定为选项窗格的父组件即可.