一个方法的执行过程以进度条来显示它的执行进度

lijiemissfei 2010-09-20 06:48:34
我要调用一个方法。这个方法执行时间可能时间会有点长。执行完后再弹出界面。
...全文
291 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lijiemissfei 2010-09-20
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 louiechong 的回复:]
7楼的代码有错,没重写方法
[/Quote]

蛋疼。你是说没重写run方法吗?你没仔细看。
忘记结账了。谢谢各位同仁了
louiechong 2010-09-20
  • 打赏
  • 举报
回复
7楼的代码有错,没重写方法
zcp1985 2010-09-20
  • 打赏
  • 举报
回复
这个需要学习下 受教了
lijiemissfei 2010-09-20
  • 打赏
  • 举报
回复
我想要的效果是这样的。呵呵……终于出来了。
lijiemissfei 2010-09-20
  • 打赏
  • 举报
回复
package progress;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ProgressMonitorInputStream;
import javax.swing.Timer;
import javax.swing.filechooser.FileFilter;

/**
* @author lijie
*
*/
public class ProgressTest {
public static void main(String[] args) {
JFrame frame = new TextFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

class TextFrame extends JFrame {
private JButton startBt = null;
private Timer activityMonitor;
private JProgressBar progressBar = null;
private Activity activity = null;

public TextFrame() {
setTitle("进度展示");
setSize(300, 400);
startBt = new JButton("Start");
JButton stopBt=new JButton("Stop");
progressBar = new JProgressBar();
// progressBar.setStringPainted(true);

// this.setLayout(new BorderLayout());
JPanel pp=new JPanel();
pp.add(startBt);
pp.add(progressBar);
pp.add(stopBt);
this.getContentPane().add(pp);
stopBt.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {
progressBar.setSize(0,0);
}
});
startBt.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {
// progressBar.setMaximum(1000);
activity = new Activity(1000);
new Thread(activity).start();
activityMonitor.start();
progressBar.setSize(150, 15);
progressBar.setIndeterminate(true);
if(activity.getCurrent()==100){
progressBar.setSize(0,0);
}
}
});

activityMonitor = new Timer(100, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int current = activity.getCurrent();
if (current ==100) {
activityMonitor.stop();
progressBar.setSize(0, 0);
}
}

});
}
public void fangfa(){
for(int i=0;i<1000;i++){
for(int j=0;j<1000;j++){
System.out.println(j);
}
}
}

}
class Activity implements Runnable {
private int current;
private int target;

public Activity(int t) {
current = 0;
target=t;
}

@Override
public void run() {
for(int i=0;i<1000;i++){
for(int j=0;j<1000;j++){
System.out.println(j);
}
}
current=100;
}

public void init() {
try {
while (current < target) {
Thread.sleep(100);
current++;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
/**
* @return the current
*/
public int getCurrent() {
return current;
}

/**
* @param current
* the current to set
*/
public void setCurrent(int current) {
this.current = current;
}

/**
* @return the target
*/
public int getTarget() {
return target;
}
/**
* @param target
* the target to set
*/
public void setTarget(int target) {
this.target = target;
}

}
kala197 2010-09-20
  • 打赏
  • 举报
回复
邪恶的 别人偷心 我偷代码
VLuther 2010-09-20
  • 打赏
  • 举报
回复
和楼主一样学到好东东~
sky123123 2010-09-20
  • 打赏
  • 举报
回复

final JProgressBar aJProgressBar = new JProgressBar(0, 100);
aJProgressBar.setIndeterminate(true);
JFrame progressFrame = new JFrame("正在加载资源");
JLabel label = new JLabel("",JLabel.CENTER);
progressFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane = progressFrame.getContentPane();
contentPane.add(aJProgressBar, BorderLayout.NORTH);
label.setText("请稍候。。。");
contentPane.add(label, BorderLayout.CENTER);
progressFrame.setSize(300, 100);
progressFrame.setVisible(true);
gutan_fox 2010-09-20
  • 打赏
  • 举报
回复
等待回答!
huguang 2010-09-20
  • 打赏
  • 举报
回复
JProgressBar

虽然我没用过

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧