0

私は小さな Java アプリケーションを構築しました。これは、父の電気小売業の閉じたコンピューター システムから受け取った入力として csv ファイルを使用して、mysql データベース上の製品の製品価格、数量、特別オファーなどを更新するためのものです。

プログレスバーを除いて、すべてが機能しています。JProgressBar の設定が原因で、アプリケーションに JProgressBar を配置する方法を一生考え出すことはできません。私はソフトウェア工学の学位を取得して最初の 6 か月で、プログラミングに関しては比較的新しいものです。

基本的に、私は 3 つのクラスを持っています。 、JFrame、JPanel、ボタン、およびデータベースへのログインと .csv ファイルの参照用のテキスト フィールドで構成されます)

GUI はデータベースのインスタンスを作成し、そのテキスト フィールドを入力として使用します。これは GUI によって作成されたアップデータ クラスのインスタンスに渡されます。

このプロジェクトのどこに進行状況バーを挿入する必要がありますか、またはこれを可能にするためにプロジェクトのセットアップについて何を変更する必要がありますか?

あなたの助けは大歓迎です.私は行き詰まり、インターネットを検索しましたが、私の状況でプログレスバーを機能させる適切な方法が見つかりません.

そして、私に気楽に行ってください:PIは、全体のセットアップでおそらく根本的なエラーを犯したことを知っています笑

ありがとう、ウィルソン。

4

1 に答える 1

0

プログレス バーは確かに GUI コンポーネントなので、他にどこに属するのでしょうか? ただし、多くの場合、Swing 以外の独自のスレッドで発生している何かの進行状況を示します (Swing スレッドでやりすぎると、GUI コントロールがフリーズします)。非 Swing スレッドからプログレス バーに直接触れることはできません。先に進めるには、 invokeLaterまたはinvokeAndWaitを使用します。メモリの無駄遣いを避けるために、同じRunnableを再利用して、必要な進行状況を内部フィールドに割り当てることができます。

Runnable doProgress = new Runnable() {

   int progress = 0;

   public void run() {
       myProgressBar.setValue(progress++);
   }
};
// do something 
SwingUtilities.invokeLater(doProgress);
// do more
SwingUtilities.invokeLater(doProgress);
于 2012-12-28T07:54:49.420 に答える