2016-11-24 1 views
0

私はZKフレームワークを使用しています。私はちょうど私のMySQLデータベースにたくさんの行を挿入したいです。データを挿入するのに数秒かかる。その間、データベースに挿入された行の数をユーザーに知らせる進捗メーターを表示するだけです。ZKプログレスメーターがイベントなしのforループと連携していません

私はこのような試み:

rowCount = qModel.executeInsert();  
for(long j = 1; j <= rowCount; j++) 
{ 
    sum = sum + 100/rowCount; 
    if (j == rowCount) 
    {    
     sum = 100; 
    } 
    progressMeter.setValue(sum);    
    countLabel.setValue((rowCount - 1) + " Rows inserted"); 
    BindUtils.postNotifyChange(null, null, countLabel, "_value"); 
} 

ここrowCountはデータベースに挿入された行の総数です。私は挿入プロセスの後、進歩のメーターが更新されていることを知っている。 しかし、ビジー状態のタグなしでプログレスメーターを更新したい。

誰かが解決策を知っている場合は、私を助けてください。すべての提案は大歓迎です。前もって感謝します。

+1

はこのを通して私を助けて。 –

答えて

1

それはあなたと同じ実行中

は限り、実際に簡単です、更新があなたのGUIに起こりません。
あなたの唯一の解決策は、タイマーによって達成される複数のコール、またはサーバープッシュを有効にすることです。

すべてが複雑に見えますが、良いニュースもあります。
Robert Wenzelは長時間の操作を簡素化するという小さな話を書いており、これを簡略化するための基本全体を含んでいます。

これを見てみてください。

https://www.zkoss.org/wiki/Small_Talks/2015/January/Simplify_Long_Operation_Handlings

関連する問題