0

ラジオボタンと情報ラベルが付いたパネルがあります。ユーザーがそのラジオボタンをクリックすると、ラベルが表示され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秒間フリーズし、ラベルに「データがロードされました」と表示されました。ループを実行する前に、ラベルに「...データを読み込んでいます....」と表示されませんでした。

そのため、ラジオボタンをクリックした直後にプログラムがループを実行し、「データが読み込まれました」と表示される前に、ラベルに「...読み込み中のデータ....」と表示される機会がありませんでした。

では、問題を解決するにはどうすればよいでしょうか。

4

1 に答える 1