我有一个JDialog,它取一个用户的名字.在JDialog的背后,是一个applet.我不希望用户在输入名称之前访问该applet.我尝试了JDialog.setAlwaysOnTop(true),但是applet抛出了一个AccessException错误.所以我做的是保持一个执行JDialog.setVisible(true)的while循环,直到JtextField(用户名的输入)为空(“”).但由于某种原因,这种方法效果很慢,这意味着JDialog会加载,但是需要时间来关注JTextField,即使用户输入他的名字,它也会非常慢……就像2秒钟内的一个角色……有没有在访问applet之前,强制用户输入名称的任何其他方式?
解决方法
使用模态JDialog.例如,JApplet的init(…)方法中的代码可能包括:
JDialog dialog = new JDialog(SwingUtilities.windowForComponent(this)); dialog.setModal(true); dialog.setSize(...); dialog.setVisible( true );
或者您可以使用JOptionPane.showInputDialog().您只需将“this”指定为选项窗格的父组件即可.