Вы можете использовать Javascript для достижения этого. Попробуйте следующий код:
HTML
<select id="myDropdown">
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select>
JS
document.getElementById("myDropdown").selectedIndex = -1;
или JQuery
$("#myDropdown").prop("selectedIndex", -1);
Вы правы в том, что код помещает пользовательский интерфейс в режим сна. Поскольку sleep
вызывается в Thread Dispatch Thread (поток, ответственный за запуск gui), пользовательский интерфейс останавливает обработку событий и «переходит в режим сна».
Я думаю, что вы хотите javax.swing.Timer
.
Timer t = new Timer(1000 * 5, new ActionListener() {
public void actionPerformed(ActionEvent e) {
// do your reoccuring task
}
});
Это приведет к тому, что ваша повторная задача будет выполнена вне EDT, и, следовательно, она не оставит ваш ui невосприимчивым.
Это связано с тем, что вы запускаете проверку в основном графическом потоке и используете бесконечный цикл. Эта проверка является фоновой задачей и должна выполняться в ее собственном потоке, чтобы графический интерфейс мог получать и реагировать на ввод пользователем.
Вам также не нужно писать свою собственную реализацию, Java имеет Объект Timer .
Редактирование: существует также специальный объект Timer для Swing. Это будет происходить в потоке графического интерфейса, поэтому, если ваша задача длинная, это может привести к тому, что графический интерфейс все еще будет заблокирован во время действия (но не в ожидании).
util
. При взаимодействии с компонентами качания вы должны использовать качели Timer
.
– jjnguy
18 November 2010 в 15:53