demoprogressbar.java

来自「一个简单的文本编辑器,模趽msword写的哈!」· Java 代码 · 共 60 行

JAVA
60
字号
package chapter14;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.lang.reflect.InvocationTargetException;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.SwingUtilities;


public class Demoprogressbar extends JPanel{
    JProgressBar jpb;
    static final int themin=0;
    static final int themax=100;
    public Demoprogressbar(){
    	super(true);
    	jpb=new JProgressBar();
    	jpb.setMinimum(themin);
    	jpb.setMaximum(themax);
    	this.add(jpb);//这里不能用到getcontentpane方法,因为不是最上层容器马!不是的,看newframe中的就知道了。
    }
    public void updatebar(int value){
        jpb.setValue(value);    	
    }
	public static void main(String[] args) {
	    final Demoprogressbar dp=new Demoprogressbar();
	    JFrame f=new JFrame("Demoprogressbar");
	    f.getContentPane().add(dp);
	    f.pack();
	    f.setVisible(true);
	    f.addWindowListener(new WindowAdapter(){
	    public void windowClosing(WindowEvent e){
	    	System.exit(0);
	    }
	    });
     for(int i=0;i<=100;i++){
    	 final int thevalue=i;
    	 try{
    		 SwingUtilities.invokeAndWait(new Runnable(){//内部类Swingutilities。               
				public void run() {
					dp.updatebar(thevalue);//对于内部类必须要是final型的变量才能访问的。					
				}    			 
    		 });
    	 }catch(InterruptedException ie){
    		 ie.printStackTrace();
    	 }catch(InvocationTargetException ite){
    		 ite.printStackTrace();
    	 }
    	 try{
    		 java.lang.Thread.sleep(100);
    		 
    	 }catch(Exception e){
    		 e.printStackTrace();
    	 }
     }
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?