package com.han;
import java.awt.*;
import javax.swing.*;
/**
* 使用了线程中断在swing进度条中的应用,在run()中调用JProgressBar的setValue()方法。
* <p>
* 本例应用了线程的中断,2种中断方法:
* <ul>
* <li>运用interrupt()方法</li>
* <li>在run()中使用无限循环,然后用一个布尔什标记去控制循环的停止</li>
* </ul>
* 另外,还有内部类与匿名内部类的分别使用。
*
* @author HAN
*
*/
@SuppressWarnings("serial")
public class ThreadAndSwing extends JFrame{
static Thread thread;
JProgressBar progressBar;
public ThreadAndSwing(){
progressBar=new JProgressBar();
progressBar.setStringPainted(true);
Container container=getContentPane();
container.add(progressBar, BorderLayout.NORTH);//在不指定布局管理器的情况下,默认使用BorderLayout。 若不使用布局管理器,需明确说明setLayout(new BorderLayout())
this.setTitle("线程中断在Swing进度条的使用");
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.creatThread();
thread.start();
// thread_instance.setContinue(false); //另一种中断线程方式
thread.interrupt();
}
class Thread_instance implements Runnable{
boolean isContinue=true;
public void setContinue(boolean b){
this.isContinue=b;
}
@Override
public void run() {
// TODO Auto-generated method stub
int count=0;
while(true){
progressBar.setValue(++count);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
System.out.println("当前程序被中断");
break;
}
if(!isContinue){
break;
}
}
System.out.println("here");
}
}
void creatThread(){
thread=new Thread(new Thread_instance());
}
static void init(JFrame frame,int width,int height){
frame.setSize(width,height);
}
public static void main (String[] args){
init(new ThreadAndSwing(),300,100);
}
}
分享到:
相关推荐
本件超过了上传限制,请...第16~19章主要讲述有关Swing图形开发的其他知识,包括观感器、Swing线程与并发、模型与架构等。第20章通过一个综合实例使读者能够在实际开发中理解和巩固所学知识,从而提高综合应用能力。
我们的项目源码基于Java语言和Swing框架,结合了一系列先进的技术和设计模式,以提高开发效率、用户体验和系统性能。 首先,我们使用了Java作为开发语言。Java是一种广泛使用的面向对象编程语言,具有跨平台性和丰富...
我们的项目源码基于Java语言和Swing框架,结合了一系列先进的技术和设计模式,以提高开发效率、用户体验和系统性能。 首先,我们使用了Java作为开发语言。Java是一种广泛使用的面向对象编程语言,具有跨平台性和丰富...
我们的项目源码基于Java语言和Swing框架,结合了一系列先进的技术和设计模式,以提高开发效率、用户体验和系统性能。 首先,我们使用了Java作为开发语言。Java是一种广泛使用的面向对象编程语言,具有跨平台性和丰富...
我们的项目源码基于Java语言和Swing框架,结合了一系列先进的技术和设计模式,以提高开发效率、用户体验和系统性能。 首先,我们使用了Java作为开发语言。Java是一种广泛使用的面向对象编程语言,具有跨平台性和丰富...
我们的项目源码基于Java语言和Swing框架,结合了一系列先进的技术和设计模式,以提高开发效率、用户体验和系统性能。 首先,我们使用了Java作为开发语言。Java是一种广泛使用的面向对象编程语言,具有跨平台性和丰富...
我们的项目源码基于Java语言和Swing框架,结合了一系列先进的技术和设计模式,以提高开发效率、用户体验和系统性能。 首先,我们使用了Java作为开发语言。Java是一种广泛使用的面向对象编程语言,具有跨平台性和丰富...
我们的项目源码基于Java语言和Swing框架,结合了一系列先进的技术和设计模式,以提高开发效率、用户体验和系统性能。 首先,我们使用了Java作为开发语言。Java是一种广泛使用的面向对象编程语言,具有跨平台性和丰富...
我们的项目源码基于Java语言和Swing框架,结合了一系列先进的技术和设计模式,以提高开发效率、用户体验和系统性能。 首先,我们使用了Java作为开发语言。Java是一种广泛使用的面向对象编程语言,具有跨平台性和丰富...
我们的项目源码基于Java语言和Swing框架,结合了一系列先进的技术和设计模式,以提高开发效率、用户体验和系统性能。 首先,我们使用了Java作为开发语言。Java是一种广泛使用的面向对象编程语言,具有跨平台性和丰富...
我们的项目源码基于Java语言和Swing框架,结合了一系列先进的技术和设计模式,以提高开发效率、用户体验和系统性能。 首先,我们使用了Java作为开发语言。Java是一种广泛使用的面向对象编程语言,具有跨平台性和丰富...
我们的项目源码基于Java语言和Swing框架,结合了一系列先进的技术和设计模式,以提高开发效率、用户体验和系统性能。 首先,我们使用了Java作为开发语言。Java是一种广泛使用的面向对象编程语言,具有跨平台性和丰富...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...
JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。 Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。...