java swing thread_Java Swing与线程的结合应用(一)

1342809670_4101.png

package com.han;

import java.awt.*;

import javax.swing.*;

/**

* 使用了线程中断在swing进度条中的应用,在run()中调用JProgressBar的setValue()方法。

*

* 本例应用了线程的中断,2种中断方法:

*

*

运用interrupt()方法

*

在run()中使用无限循环,然后用一个布尔什标记去控制循环的停止

*

* 另外,还有内部类与匿名内部类的分别使用。

*

* @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);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值