Вот мой псевдокод в моем приложении GWT.
-Visible the loading Label -Loading text from properties file (may take long) -Invisible the loading Label & Visible the main HTMLPanel
Поэтому я хочу использовать Scheduler.get().scheduleDeferred
для этого, вот код:
loadingLabel.setVisible(true);
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
loadingText();
}
}
loadingLabel.setVisible(false);
mainHTMLPanel.setVisible(true);
Но он работает неправильно, так как не показывал loadLabel, но сразу показывал mainHTMLPanel и когда я нажимаю текстовое поле внутри mainHTMLPanel, так как графический интерфейс завис, потому что он загружает текст. Затем мне нужно немного подождать, чтобы щелкнуть текстовое поле внутри mainHTMLPanel.
Но если я поставлю loadingLabel.setVisible(false);
и mainHTMLPanel.setVisible(true);
внутри execute()
, тогда это сработает.
Но я не уверен, что это правильный путь.
Итак, является ли следующий код правильным способом использования Scheduler.get().scheduleDeferred
?
loadingLabel.setVisible(true);
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
loadingText();
loadingLabel.setVisible(false);
mainHTMLPanel.setVisible(true);
}
}