この記事では、Javaスイングコンポーネントの進行状況監視機能の実装について説明します。次のように、参照のために共有してください。
例1:
Import java.awt.event.actionEvent; Import java.awt.event.actionListener; Import javax.swing.progressmonitor; Import javax.swing.timer; public class testprogressmonitor {タイマータイマー; public void init(){final simulatedTargetMi Target = new SimulatedTargetMi(1000); // thread thread targetthread = newスレッド(ターゲット)を起動して、時間のかかるタスクを実行します。 TargetThread.start(); // [進行状況]ダイアログの作成最終的なProgressMonitorダイアログ= new ProgressMonitor(null」、「タスクが完了するのを待つ、タスクが完了する前にウィンドウを閉じないでください。そうしないと、現在の操作がキャンセルされます...」、「0.00%」、0、target.getamount(); //タイマータイマー=新しいタイマー(300、new ActionListener(){public void actionPerformed(ActionEvent e){//進行状況ダイアログの完了比率をタスクダイアログダイアログダイアログと設定します。ダイアログボックス(Dialog.isceled()){//タスク実行スレッドを中断します。 Timer.start(); } public static void main(string [] args){new testProgressMonitor()。init(); }} //時間のかかるタスククラスをシミュレートするシミュレーションをシミュレートできます。 //総タスクボリュームプライベートイントル額。 public SimulatedTargetmi(int lument){current = 0; this.Amount =額; } public int getAmount(){return額; } public int getCurrent(){return current; } //実行メソッドは、タスクを継続的に完了するプロセスを表しますpublic void run(){while(current <amont){try {thread.sleep(50); } catch(arternedexception e){} current ++; }} public string getPercent(){return string.format( "%。2f"、100.0 * current / anlime) + "%"; }}ランニング効果:
例2:
java.awt.flowlayout; Import java.awt.font; import java.awt.event.actionevent; import java.awt.event.actionlistener; Import java.awt.event.windowadapter; Import Java.awt.event.windowent; Import javax.wing.wing.wing.wing.wing.wing.wing.wing.wing.wing.wing.wing.wing.wing.wing.wing.wing.wing.wing.wing.wing. javax.swing.jframe; Import javax.swing.jlabel; Import javax.swing.jpanel; Import javax.swing.jprogressbar; Import javax.swing.timer; public class testjprogressbar {jframe frame = new jframe( "www.vevb.com-現在の進捗表示..."); //垂直進行棒を作成するjprogressbar bar = new jprogressbar(jprogressbar.horizontal); jlabel tiplabel = new Jlabel( "Tip:"、jlabel.left); jlabel contentlabel = new Jlabel(「タスクが完了する前にウィンドウを閉じないでください。そうしないと、現在の操作がキャンセルされます... "、jlabel.left); jlabel statuslabel = new Jlabel( ""、jlabel.center); public void init(){frame.setLayout(new FlowLayout()); frame.setSresizable(false); tiplabel.setfont(new Font( "serif"、font.plain、14)); contentlabel.setfont(new Font( "serif"、font.plain、14)); statuslabel.setfont(new Font( "serif"、font.plain、14)); jpanelパネル= new JPanel(); // fr5.setborder(new Titledborder( "boxlayout -y")); panel.setLayout(new BoxLayout(Panel、BoxLayout.y_axis)); Panel.Add(Tiplabel); panel.add(box.createverticalStrut(2)); panel.add(contentlabel); panel.add(box.createverticalStrut(7)); panel.add(bar); // panel.add(box.createverticalglue()); panel.add(box.createverticalStrut(2)); panel.add(statuslabel); frame.add(パネル、0);最終シミュレーションターゲットターゲット= new SimulatedTarget(1000); // thread thread thread thread = newスレッド(ターゲット)を起動して、時間のかかるタスクを実行します。 thread.start(); // Progress Bar Bar.SetsStringPainted(true)に描画完了の割合を設定します。 // bar.setPreferredSize(新しい次元(100、18)); //進行状況barの最大値と最小値を設定します。 //進行状況bar.setmaximum(target.getamount())の最大値として合計タスクを使用します。 Final Timer Timer = new Timer(300、new ActionListener(){public void actionperformed(ActionEvent e){//プログレスバーバーの値をタスクバーバーバーの現在完了額で設定します。Setcurrent()); }}); Timer.start(); frame.setlocationRelativeto(null); frame.setDefaultCloseoperation(jframe.dispose_on_close); // frame.setDefaultCloseoperation(jframe.exit_on_close); frame.addwindowlistener(new WindowAdapter(){@Override public void windowclosing(windowevent e){thread.interrupt(); timer.stop(); // system exit system.exit(0);}}); //このコードは、配置されたコンポーネントに従ってウィンドウサイズを設定して、frame.pack()に配置したすべてのコンポーネントに対応できるようにします。 frame.setVisible(true); } public static void main(string [] args){new testjprogressbar()。init(); }} //時間のかかるタスククラスシミュレーションシミュレーションタルゲット実装{//タスクの現在の完了額プライベート揮発性int電流; //総タスクボリュームプライベートイントル額。 public SimulatedTarget(int lument){current = 0; this.Amount =額; } public int getAmount(){return額; } public int getCurrent(){return current; } //実行メソッドは、タスクを継続的に完了するプロセスを表しますpublic void run(){while(current <lument){try {shood.sleep(20); } catch(arternedexception e){} current ++; }} public string getPercent(){return string.format( "%。1f"、100.0 * current / anlime) + "%"; }}実行結果:
Javaアルゴリズムの詳細については、このサイトに興味のある読者は、「Javaデータ構造とアルゴリズムのチュートリアル」、「Java操作DOMノードのヒントの要約」、「Javaファイルの要約およびディレクトリ操作のヒント」、「Java Cache操作のヒントの要約」というトピックを見ることができます。
この記事がみんなのJavaプログラミングに役立つことを願っています。