Java実装進捗バー

3787 ワード

, :

JProgressBar(Swing javax.swing.JProgressBar) SwingWorker(Swing javax.swing.SwingWorker)

package org.ubird;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
import javax.swing.SwingWorker;

public class TestSwingWorker extends SwingWorker,String>{

	private JLabel status;
	private JPanel viewer;
	private String[] imagesName;
	private JProgressBar jpb;
	
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable(){
			public void run() {
				TestFrame frame = new TestFrame();
				final JPanel panel = new JPanel();
				final JLabel label = new JLabel();
				
				final String[] imagesName = new String[38];
				for(int i=0; i doInBackground() throws Exception {
		List image = new ArrayList();
		for(int i=0; i chunks) {
		status.setText(chunks.get(chunks.size()-1));
		int x = Integer.parseInt(chunks.get(chunks.size()-1).substring(chunks.get(chunks.size()-1).indexOf("(")+1,chunks.get(chunks.size()-1).indexOf(")")).trim());
		jpb.setValue(x);
		
		for(String str : chunks){
			System.out.println(str);
		}
	}

	@Override
	protected void done() {
		try {
			for(Image image : get()){
				JLabel label = new JLabel(new ImageIcon(image));
				label.setSize(160, 120);
				label.setPreferredSize(new Dimension(160,120));
				viewer.add(label);
			}
		} catch (InterruptedException e) {
			e.printStackTrace();
		} catch (ExecutionException e) {
			e.printStackTrace();
		}
	}
	
	
}
package org.ubird;

import javax.swing.JFrame;

public class TestFrame extends JFrame {


	public TestFrame(){
		setTitle("Test Frame");
		setSize(800,600);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

このプログラムの実行可能なソースコード、リソースピクチャのダウンロードアドレス:http://download.csdn.net/source/3245370
NOTE:解凍後ダブルクリック中:CompileAndRun.batはWinで直接運転可能