Как уже говорилось, ваш цикл не будет загружать процессор.
Но будьте осторожны : Windows не ОС реального времени, поэтому вы не не получите 1000 пробуждений в секунду от Thread.Sleep ( 1). Если вы не использовали timeBeginPeriod для установки минимального разрешения, вы будете просыпаться каждые 15 мс. Даже после того, как вы установили минимальное разрешение в 1 мс, вы все равно будете просыпаться каждые 3-4 мс.
Для получения детализации таймера миллисекундного уровня необходимо использовать мультимедийный таймер Win32 (оболочка C # ).
Вам нужен JDialog
с modal = true
. Из документации Javadocs:
модальный
- указывает, блокирует ли диалоговое окно ввод пользователя в другие окна верхнего уровня при отображении.
Просто измените JFrame
на JDialog
.
Затем в конструкторе используйте эту строку:
setModal(true);
Ваше приложение будет заблокировано до тех пор, пока диалоговое окно закрывается.
Вы можете просмотреть JOptionPane.showInputDialog ()
, если ваши пользователи просто вводят String
.