java 简单进度条实践

来源:互联网 发布:淘宝收话费卡 编辑:程序博客网 时间:2024/06/07 06:39

以个进度条 当后台有程序运行,他动,运行完,停止不动,就这个。简单的很


/**
 * 
@author weistone2001@hotmail.com
 * @一个简单的 loading条
 
*/

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JProgressBar;
/**
 * 
@author weistone2001@hotmail.com
 * @这个类创建了一个不确定模式进度条,也就是没有进度,一直傻傻动的进度条
 
*/

class A extends JProgressBar implements Runnable {    
    
public void run() {        
            
this.setIndeterminate(true);
        }
        
    }

/**
 * 
@author weistone2001@hotmail.com
 * @这个类是你实际后台程序
 
*/

class T  implements Runnable {    
    
public void run() {        
        
int x=0;
        
for(int i=0;i<500000;i++){
            x
=x+i;
            System.out.println(x);
        }
        
        }
        
    }

/**
 * 
@author weistone2001@hotmail.com
 * @主程序,进行吧两个类分别实现在线程里,然后运行
 
*/

public class B extends JFrame {
    B() 
{
        
this.setLayout(new BorderLayout());
        
this.setSize(500600);
        
this.pack();
        
this.setVisible(true);
    }

    
public static void main(String arg[]){
        B b
=new B();
        b.setLayout(
new BorderLayout());
        b.setSize(
500600);
        
final A a=new A();
        
final T t=new T();
        b.add(
"Center",a);
        
final Thread t1=new Thread(a,"aaa");
        
final Thread t2=new Thread(t,"ttt");
        b.pack();
        Button bb
=new Button();
        b.add(
"South",bb);
        bb.addActionListener(
new ActionListener() {
            
public void actionPerformed(ActionEvent arg0) {
                t1.start();
                t2.start();                            
            }
                         
            }
);
    }
    
}

其实也可以主类自己就是一个Runnable

 

package visual;

import javax.swing.*;
import javax.xml.rpc.ServiceException;
import java.awt.*;
import java.awt.event.*;
import java.rmi.RemoteException;
import keggapi.KEGGLocator;
import keggapi.KEGGPortType;
import keggapi.SSDBRelation;

class A extends JProgressBar implements Runnable {
    
public void run() {

        
this.setIndeterminate(true);
    }

}


class DialogTesteConnecter extends JDialog implements ActionListener, Runnable {

    
final A aJProgressBar = new A();
    KEGGLocator locator;
    KEGGPortType serv;
    JButton Annuler 
= new JButton("Annuler");
    JButton Tester 
= new JButton("Tester");
    
boolean indeterminate = true;
    JLabel jlb 
= new JLabel("Appuyez le button Tester ");

    DialogTesteConnecter(Frame f, String s, 
boolean b) throws ServiceException {
        
super(f, s, b);
        locator 
= new KEGGLocator();
        serv 
= locator.getKEGGPort();
        setLayout(
new FlowLayout());
        
this.setBounds(200200220130);
        
this.add(aJProgressBar);
        
this.add(Tester);
        
this.add(Annuler);
        
this.add(jlb);
        Annuler.addActionListener(
this);
        Tester.addActionListener(
this);
        validate();
    }


    
public void actionPerformed(ActionEvent e) {
        
if (e.getActionCommand().equals("Annuler")) {
            dispose();
        }

        
if (e.getActionCommand().equals("Tester")) {
            Thread t1 
= new Thread(aJProgressBar, "aaa");
            Thread t2 
= new Thread(this"ttt");
            t1.start();
            t2.start();

        }

    }


    
public void run() {
        SSDBRelation[] results 
= null;
        
try {
            results 
= serv.get_best_neighbors_by_gene("eco:b0002"11);
            
for (int i = 0; i < results.length; i++{
                
int score = results[i].getSw_score();
                
if (score > 0{
                    jlb.setText(
"Réussir de Connecter");
                    aJProgressBar.setIndeterminate(
false);
                }
 else {
                    jlb.setText(
"Désolé on ne sais pas le raison");
                    aJProgressBar.setIndeterminate(
false);
                }

            }

        }
 catch (RemoteException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }


    }


}

 

 

原创粉丝点击