我有一个带有单选按钮和信息标签的面板。我希望当用户单击该单选按钮时,标签将infoLabel.setText("...loading data....");
,然后程序将运行一个可能需要 5 秒的长循环。当循环结束时,程序将infoLabel.setText("data was loaded");
final RadioButton yesRadioButton=new RadioButton("confirm","Yes");
yesRadioButton.addClickHandler(new ClickHandler(){
@Override
public void onClick(ClickEvent event) {
infoLabel.setText("...loading data....");
//long loop here
for (int i = 0; i < cities.length; ++i) {
citiesOracle.add(cities[i]);}
infoLabel.setText("data was loaded");
}
});
上面的代码不能正常工作。当我检查单选按钮时,程序冻结了 5 秒,然后显示标签“数据已加载”。在它运行循环之前,我没有看到标签显示“...正在加载数据...”。
所以程序在我单击单选按钮后立即运行循环并且它没有让标签有机会在显示“数据已加载”之前先显示“......正在加载数据......”
那么如何解决这个问题呢?