У меня есть a JDialog
это берет имя от пользователя. Позади JDialog
, апплет. Я не хочу, чтобы пользователь получил доступ к тому апплету, пока он не ввел имя. Я попробовал JDialog.setAlwaysOnTop(true)
, но апплет бросает AccessException
ошибка. Таким образом, то, что я сделал, было содержанием некоторое время цикл, который выполнится JDialog.setVisible(true)
до JtextField
(вход для имени пользователя), пусто (""). Но по некоторым причинам это работает действительно медленное, означая JDialog
загрузки, но это занимает время, чтобы сфокусироваться на JTextField
и даже когда пользователь вводит свое имя, оно прибывает действительно медленное... как один символ через 2 секунды... Есть ли какой-либо другой способ для меня вынудить пользователя ввести имя прежде, чем получить доступ к апплету?
Используйте модальный JDialog. Например, код в вашем методе init (...) JApplet может включать:
JDialog dialog = new JDialog(SwingUtilities.windowForComponent(this));
dialog.setModal(true);
dialog.setSize(...);
dialog.setVisible( true );
Или вы можете просто использовать JOptionPane.showInputDialog (). Опять же, вы должны просто указать «this» в качестве родительского компонента панели параметров.
Он работает медленно, потому что программа обрабатывает этот цикл foo
Что вы можете сделать, так это добавить слушателя окна, и тогда jdialog потеряет фокус (или апплет получает его), вернуть фокус jdialog.
Это должно работать намного лучше, чем цикл for, который вы используете сейчас