您的位置:首页 > 其它

Swing高级JProgressBarTest进度条

2015-06-08 21:53 176 查看
/article/6354745.html

package test;

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.BorderFactory;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JProgressBar;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

public class JProgressBarTest extends JFrame{

/**

*

*/

private static final long serialVersionUID = 1L;

public JProgressBarTest() {

super();

this.setTitle("到出数据");

this.setBounds(100,100,550,350);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel pnBasic = new JPanel();

final JButton button = new JButton("到出数据");

button.setBounds(100,10,100,100);

pnBasic.add(button);

final JTextArea textArea = new JTextArea();

textArea.setEditable(false);

JScrollPane scrollPane = new JScrollPane(textArea);

scrollPane.setBorder(BorderFactory.createTitledBorder("导出信息显示"));

scrollPane.setPreferredSize(new Dimension(0, 120));

scrollPane.setSize(new Dimension(400,200));

this.add(scrollPane,BorderLayout.CENTER);

final JProgressBar progressBar = new JProgressBar();

progressBar.setMinimum(0);

progressBar.setMaximum(50);

progressBar.setStringPainted(true); //显示提示信息

progressBar.setIndeterminate(false); //确定进度的进度条

pnBasic.setLayout(new FlowLayout(2,10,10));

pnBasic.add(button); //布局处理

this.add(pnBasic,BorderLayout.NORTH);

this.add(progressBar,BorderLayout.SOUTH);

button.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

button.setEnabled(false); //初始化时不可用

Progress pg=new Progress(progressBar,button,textArea,50);

pg.start();

}

});

}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

JProgressBarTest jProgressBarTest = new JProgressBarTest();

jProgressBarTest.setVisible(true);

}

}

class Progress extends Thread{

private int progressValue = 100;

private JProgressBar progressBar;

private JButton button;

private JTextArea textArea;

public Progress(JProgressBar progressBar,JButton button,JTextArea textArea,int progressValue )

{

this.progressBar = progressBar;

this.button =button;

this.progressValue=progressValue;

this.textArea=textArea;

}

public void run()

{

for(int i=0;i<=progressValue;i++)

{

try

{

Thread.sleep(100);

}catch(Exception e)

{

e.printStackTrace();

}

progressBar.setValue(i); //进度值

progressBar.setString("导出"+i+"/"+progressValue+"文件"); //提示信息

textArea.append(progressBar.getString() + "\n");

}

progressBar.setIndeterminate(false); //采用确定的进度条

//progressBar.setIndeterminate(true); //不确定进度的进度条

progressBar.setString("导出完成."); //提示信息

button.setEnabled(true); //按钮可用

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: