ProgressMonitorを使ってみる

戻る



/**
* $Id: pMonitor.html,v 1.1 2009/06/22 16:12:18 kishi Exp kishi $
*/
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.ProgressMonitor;
import javax.swing.SwingUtilities;
import javax.swing.Timer;
import javax.swing.UIManager;

public class ProgressMonitorTest extends JFrame implements ActionListener {

    static ProgressMonitor pbar;

    static int counter = 0;

    public ProgressMonitorTest() {
        super( "ProgressMonitorを使ってみる" );
        setSize( 600, 100 );
        setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

        pbar = new ProgressMonitor( null, "進捗のモニタリング",
                                    "Initializing . . .", 0, 100 );

        Timer timer = new Timer( 500, this );
        timer.start();
        setVisible( true );
    }

    public static void main( String args[] ) {
        UIManager.put( "ProgressMonitor.progressText", "かなり重たい処理を実行しています・・・" );
        UIManager.put( "OptionPane.cancelButtonText", "キャンセル" );
        new ProgressMonitorTest();
    }

    public void actionPerformed( ActionEvent e ) {
        SwingUtilities.invokeLater( new Update() );
    }

    class Update implements Runnable {
        public void run() {
            if ( pbar.isCanceled() ) {
                pbar.close();
                System.exit( 1 );
            }
            pbar.setProgress( counter );
            pbar.setNote( "現在 " + counter + "% 完了しています" );
            counter += 5;
        }
    }
}

戻る inserted by FC2 system