- 浏览: 64615 次
- 性别:
- 来自: 江西
最新评论
package com.jkds.sxltquery.onetaxpayer;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.LineBorder;
import java.lang.reflect.InvocationTargetException;
/**
* Created by IntelliJ IDEA.
* User: Administrator
* Date: 2009-7-5
* Time: 16:24:34
* To change this template use File | Settings | File Templates.
*/
public class SliderDemo extends JFrame {
JProgressBar progressBar;
JButton startButton;
JButton stopButton;
JTextArea output;
private int num = 50;//default number
Object lock = new Object();
boolean shouldStop;//should thread to be stopped
Thread myThread;
public static void main(String[] args) {
SliderDemo frame = new SliderDemo();
frame.pack();
frame.setVisible(true);
}
public SliderDemo() {
setTitle("Demo of Slider");
Container content = getContentPane();
//value is from 0 to 100,initial value is 50
JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 100, num);
slider.addChangeListener(new SliderListener());
slider.setMajorTickSpacing(10);
slider.setMinorTickSpacing(2);
slider.setPaintTicks(true);
slider.setPaintLabels(true);
ButtonListener buttonListener = new ButtonListener();
startButton = new JButton("Start");
startButton.addActionListener(buttonListener);
stopButton = new JButton("Stop");
stopButton.addActionListener(buttonListener);
progressBar = new JProgressBar();
progressBar.setValue(0);
progressBar.setStringPainted(true);
//use textarea to show the counter
output = new JTextArea(5, 20);
output.setMargin(new Insets(5, 5, 5, 5));
output.setEditable(false);
JScrollPane scrollPane = new JScrollPane(output);
JPanel panel = new JPanel();
panel.add(startButton);
panel.add(stopButton);
panel.add(progressBar);
content.add(slider, BorderLayout.NORTH);
content.add(scrollPane, BorderLayout.CENTER);
content.add(panel, BorderLayout.SOUTH);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
//listener to the start button
class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
//start the task
if (event.getSource() == startButton) {
startButton.setEnabled(false);
if (myThread == null) {
myThread = new TaskThread(num);//create a task thread
shouldStop = false;
myThread.start();//start the task thread
}
} else {//end the task
synchronized (lock) {
shouldStop = true;
lock.notify();//notify thread if stopped
}
}
}
}
//listen to the slider
class SliderListener implements ChangeListener {
public void stateChanged(ChangeEvent e) {
JSlider source = (JSlider) e.getSource();
if (!source.getValueIsAdjusting()) {
num = (int) source.getValue();
}
}
}
//task will be executed in a thread and monitored by a progress bar
class TaskThread extends Thread {
private int max;
public TaskThread(int max) {
this.max = max;
}
public void run() {
int min = 0;
progressBar.setValue(min);
progressBar.setMinimum(min);
progressBar.setMaximum(max);
Runnable runner = new Runnable() {
public void run() {
int value = progressBar.getValue();
value++;//increase counter value
progressBar.setValue(value);//change current value of progress bar
output.setText("Number:" + value);
}
};
for (int i = min; i < max; i++) {
try {//block until AWT events hava been processed
SwingUtilities.invokeAndWait(runner);
} catch (InvocationTargetException e) {
break;
} catch (InterruptedException e) {
//Ignore Exception
}
synchronized (lock) {
if (shouldStop)//check if Stop is pressed
break;
try {
lock.wait(100);
} catch (InterruptedException e) {
//Ignore Exception
}
}
}
startButton.setEnabled(true);//enable button
myThread = null;
}
}
}
http://www.java-cn.com/bbs-jsp/show.jsp?id=43385
发表评论
-
ChartDirector开发实例
2009-06-20 00:07 3071http://www.iteye.com/topic/410 ... -
Struts学习笔记
2009-05-31 10:17 804Struts学习笔记 http://topic ... -
jdk,tomcat环境变量配置[转]
2009-04-14 16:04 1278jdk,tomcat环境变量配置[转] 比如:jdk目录: ... -
java中解析xml
2008-11-06 17:10 2198public class Test { public ... -
Struts 项目中web.xml文件配置
2008-03-22 13:58 3235http://blog.csdn.net/songqiu/ar ... -
list 与数组的转换,关系
2008-02-20 16:21 1339=====list 与数组的转换 List--》数组 ... -
split()函数----分隔字符串的函数
2008-02-19 09:34 992String str = "true|false&q ... -
WEB开发技术比较(PHP和Java的Web开发--转locoray)
2007-09-13 16:34 1199WEB开发技术比较 ... -
java试题
2007-08-24 11:03 1076第一,谈谈final, f ... -
java基础问答
2007-08-24 10:18 1075一、基础问答 1.下面哪些类可以被继承? java.lan ... -
java心得
2007-08-24 09:41 1174类变量:就是相同类都 ... -
Java程序员的推荐阅读书籍(转robbin)--收藏篇
2007-08-23 09:38 1266《Java程序员的推荐阅读书籍》 JavaEye (http: ... -
Java学习从入门到精通(转robbin )--收藏篇
2007-08-23 09:11 921Java Learning Path (一)、 ...
相关推荐
java进度条设计源代码 有多个进度条代码
java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现
请用NETBEANS运行脚本,读取的文件最好大于30M,请在代码中更换名称,并且把这个文件放入解压的文件夹中。
进度条 3种排序功能选择 可以输入数据或产生随机数
Java实现进度条 Java实现进度条 Java实现进度条 Java实现进度条 Java实现进度条
java进度条的使用视频
java 进度条
Java 进度条的使用 有暂停 和 继续,不是简单的开始而已,这里还实现了暂停和继续的功能,希望你们好好利用,掌握它的使用!
Java进度条的使用视频教程,很不错的东西。希望对你的学习能有帮助。
使用JProgressBar和SwingWorker做的Java进度条 简单方便 效果看这里:http://blog.csdn.net/kakashi8841/archive/2011/05/03/6388797.aspx
非常实用的java进度条代码,可以很好的实现两种方法显示进度
用java实现了简单的进度条显示,只有开始,无法暂停和继续,适用于再次开发。
通过读取文件来演示JProgressBar的功能!
Java 进度条程序代码,包含简单程序实践
该示例程序通过iobjects JAVA实现导入数据的进度条的功能。
进度条的设计,掌握颜色选择器对话框的使用,文件选择器对话框的使用,使用JOptionPane类创建对话框,通过制作“设置字体”对话框,掌握列表框、单选按钮、组合框等组件的使用,了解打包工具JAR的使用
Java的命令行进度条 JCmdLineProgess
gif形式的进度条,多种多样的. gif形式的进度条,多种多样的.
java实现监视任务的进度条,本人已试验成功,分享给有需要的朋友们啦!
弹出进度条,好看实用的进度条,js做出来的,可以直接运行