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); //按钮可用
}
}
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); //按钮可用
}
}
相关文章推荐
- android TypedValue.applyDimension()的作用
- 一个 无私的 又不错的 博客
- SQL Server 2012 故障转移群集最佳实践(三)
- MySQL执行外部sql脚本文件的命令
- byte[]与各种数据类型互相转换示例
- Struts2的几种传参方式
- hadoop----eclipse导入hadoop源码
- 尺码说明
- HttpClient之Get请求和Post请求示例
- linux基本命令<1>
- hunnu--11548--找啊找啊找朋友
- 隐马尔科夫学习五(一)
- linux sh/bash 编程常用
- java 中间件学习3-synchronized
- IOS开发之自制城市选择器(省份+城市+区/县城)(storyboard版)
- Jackson优化使用实例
- 《大话设计模式》学习笔记25[完结]:模式总结
- ColorSense颜色检测器
- SQL Server 2012 故障转移群集最佳实践(二)
- hg0088开户广东产品职位推荐