`
jacky68147527
  • 浏览: 211157 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JProgressBar使用示例

    博客分类:
  • java
阅读更多
通过JAVA读取文件来演示JProgressBar
jar包在附件中……
import java.awt.FileDialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

import javax.swing.JFrame;
import javax.swing.UnsupportedLookAndFeelException;

/*
 * TestFrame.java
 *
 * Created on 2008年10月8日, 下午2:02
 */



/**
 *
 * @author  lzkj
 */
public class TestProgressBar extends javax.swing.JFrame {

    /** Creates new form TestFrame */
    public TestProgressBar() {
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {
    	this.setTitle("JProgress Bar Demo");
    	setLocation(300,300);
        bar = new javax.swing.JProgressBar();
        info = new javax.swing.JLabel();
        open = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        bar.setVisible(false);
        bar.setValue(0);
        bar.setStringPainted(true);
        
        open.setText("Open");
        open.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				FileDialog fd = new FileDialog(new JFrame(),"打开文件",FileDialog.LOAD);
				fd.show(true);
				String path = fd.getDirectory();
				String fn = fd.getFile();
				info.setText("FilePath:"+path+fn);
				readFile(path+fn);
				open.setEnabled(false);
			}
        	
        });
        
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(info, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 354, Short.MAX_VALUE)
                    .addComponent(open, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(bar, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 354, Short.MAX_VALUE))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(open)
                .addGap(18, 18, 18)
                .addComponent(info, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(bar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

    public void readFile(String fname){
    	new Thread(new ReadThread(fname)).start();	
    }
    
    class ReadThread implements Runnable{
    	String fileName;
    	public ReadThread(String fn){
    		fileName = fn;
    	}
		public void run() {
			// TODO Auto-generated method stub
			System.out.println("thread start......");
			long startTime = System.currentTimeMillis();
			File file = new File(fileName);
			
        	InputStream in;
    		try {
    			in = new FileInputStream(file);
//    			BufferedReader reader = new BufferedReader(new InputStreamReader(in));
    			bar.setMaximum((int)file.length());
    			bar.setVisible(true);
    			int cv = 0;
    			int size = 0;
    			byte[] cache = new byte[256];
    			while((size = in.read(cache))>0){
    				cv+=size;    			
    				System.out.println("currentSize:"+size);
    				bar.setValue(cv);
    			}
    			System.out.println("TotalSize:"+cv);
    			System.out.println("FileSize:"+file.length());
    			bar.setVisible(false);
    			bar.setValue(0);
    			long finishTime = System.currentTimeMillis();
    			info.setText("Finish... use time : "+(finishTime-startTime)+"ms");
    			open.setEnabled(true);
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}catch(IOException e){
    			e.printStackTrace();
    		}
		}
    	
    }
    
    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
    	try {
			javax.swing.UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");
			com.birosoft.liquid.LiquidLookAndFeel.setLiquidDecorations(true);
			java.awt.EventQueue.invokeLater(new Runnable() {
	            public void run() {
	                new TestProgressBar().setVisible(true);
	            }
	        });
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (UnsupportedLookAndFeelException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}        
    }

    // Variables declaration - do not modify
    private javax.swing.JProgressBar bar;
    private javax.swing.JLabel info;
    private javax.swing.JButton open;
    // End of variables declaration

}
分享到:
评论

相关推荐

    swing进度条demo

    一个简单的JProgressBar使用示例: ```java JProgressBar progressBar = new JProgressBar(0, 100); progressBar.setValue(0); progressBar.setStringPainted(true); // 显示文字进度 JFrame frame = new ...

    Java Swing JProgressBar进度条的实现示例

    以下是一个简单的代码实例,演示了如何使用 JProgressBar: ``` package com.xiets.swing; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java....

    基于 jQuery的JProgressBar Demo文件加载进度条演示效果1.0.zip

    示例代码中的`使用须知.txt` 这个文件可能包含`JProgressBar`的使用说明、注意事项或版权信息,具体内容需要打开文件查看。在实际使用中,务必阅读此类文档以确保正确、合法地使用插件。 总结,`JProgressBar`是...

    进度条使用方式

    本文将通过分析一个示例代码,详细介绍`JProgressBar`的使用方法,包括初始化、动态更新进度值以及控制进度条的外观。 #### 初始化JProgressBar 在示例代码中,`JProgressBar`实例`probar`在`cc`类的构造函数中被...

    ProgressBar:带线程的JProgressbar

    在`ProgressBar-master`这个压缩包文件中,可能包含了上述示例的完整源代码,以及更多的使用`JProgressBar`和线程的示例和练习,供学习者加深理解。通过研究这些代码,你可以更好地掌握如何在Java Swing应用程序中...

    java的applet带进度条表格示例

    这个"java的applet带进度条表格示例"是一个经典的案例,它结合了Java Swing组件JTable和JProgressBar来创建一个交互式的表格,用户可以直观地看到表格中的某个任务或操作的进度。 首先,我们要了解JTable。JTable是...

    Java实现文件上传进度条示例

    4. **文件上传服务**:在上述示例中,`uploadService.getFileUploadStream()`代表一个抽象的文件上传服务,实际项目中可能需要对接具体的HTTP客户端库(如Apache HttpClient或OkHttp)或者使用Servlet API来处理文件...

    JavaSwing界面设计(所有控件及示例)

    - `JProgressBar` 显示任务进度。 - `JSlider` 和 `JSpinner` 提供数值选择或调整。 - `JFileChooser` 和 `JColorChooser` 分别用于打开文件对话框和颜色选择对话框。 - `JMenuBar`, `JMenu`, `JMenuItem` 等...

    Swing应用程序的加载动画示例

    环境Windows XP professional, JDK 1.6, Eclipse 3.3 ...主要是使用JProgressBar和Timer来实现。目的是让比较复杂的Swing应用启动时解决延迟的状态,以提供友好的使用感。 阅读对象:使用Swing开发应用的学员。

    java进度条的使用视频

    Java进度条是GUI(图形用户界面)编程中一个常见的组件,通常用于在执行...通过观看视频并结合上述代码示例,你将能够熟练掌握Java GUI编程中的进度条使用技巧。记得在实践中不断尝试和优化,以提供更优秀的用户体验。

    JAVA编写的进度程序

    这个“JAVA编写的进度程序”就是一个使用纯Java实现的进度条示例,特别关注了轻量级组件(JFC/Swing)的运用。在Java中,我们可以使用javax.swing.JProgressBar类来创建进度条。 首先,让我们深入理解JProgressBar...

    Java进度条的使用视频

    在Swing中,进度条通常使用JProgressBar类来创建。JProgressBar有两种模式:连续(Continuous)和离散(Discrete)。连续模式适合表示未知总时间的任务,而离散模式则适用于已知步长的任务。 1. **创建JProgressBar...

    Java Swing 进度条

    这很可能是一个示例程序,演示了如何在Java Swing应用中创建和使用`JProgressBar`。在这个示例中,开发者可能会展示如何设置进度条的最小值、最大值、当前值,以及如何动态更新进度。此外,还可能涉及线程同步,因为...

    swing不确定进度条

    在GUI应用程序中,当执行耗时操作如文件读写、网络通信或大数据处理时,为了提高用户体验,通常会使用进度条(JProgressBar)来显示任务的进度。在某些情况下,我们无法预估任务的具体完成时间,这时我们可以使用...

    Jindutiao.rar_java进度条

    例如,使用 SwingWorker 更新 JProgressBar: ```java SwingWorker, Integer&gt; worker = new SwingWorker, Integer&gt;() { @Override protected Void doInBackground() throws Exception { for (int i = 0; i ; i++)...

    java实现程序启动界面

    下面我们将详细探讨如何使用Java来实现这样的功能。 首先,我们需要了解Java的基础知识,包括类、对象、事件处理和图形用户界面(GUI)组件。在Java Swing或JavaFX库中,我们可以找到用于创建GUI的各种组件,如...

    java gui进度条

    本篇文章将深入探讨如何使用Java中的`JProgressBar`类来创建和管理进度条。 `JProgressBar`是Java Swing库中的一个组件,属于javax.swing包。它提供了一种可视化的方式,用以展示任务完成的百分比或者进度。`...

    JAVA_SplashWindow.rar_java SplashWindow

    9. **国际化(Internationalization)**: 虽然示例可能未涉及,但考虑到应用程序可能被全球用户使用,理解如何进行国际化和本地化也是重要的,包括使用`ResourceBundle`来处理多语言文本。 10. **调试与测试**: ...

Global site tag (gtag.js) - Google Analytics