歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java Swing與線程的結合應用

Java Swing與線程的結合應用

日期:2017/3/1 10:16:15   编辑:Linux編程

Java Swing與線程的結合應用:

  1. package com.han;
  2. import java.awt.*;
  3. import javax.swing.*;
  4. /**
  5. * 使用了線程中斷在swing進度條中的應用,在run()中調用JProgressBar的setValue()方法。
  6. * <p>
  7. * 本例應用了線程的中斷,2種中斷方法:
  8. * <ul>
  9. * <li>運用interrupt()方法</li>
  10. * <li>在run()中使用無限循環,然後用一個布爾什標記去控制循環的停止</li>
  11. * </ul>
  12. * 另外,還有內部類與匿名內部類的分別使用。
  13. *
  14. * @author HAN
  15. *
  16. */
  17. @SuppressWarnings("serial")
  18. public class ThreadAndSwing extends JFrame{
  19. static Thread thread;
  20. JProgressBar progressBar;
  21. public ThreadAndSwing(){
  22. progressBar=new JProgressBar();
  23. progressBar.setStringPainted(true);
  24. Container container=getContentPane();
  25. container.add(progressBar, BorderLayout.NORTH);//在不指定布局管理器的情況下,默認使用BorderLayout。 若不使用布局管理器,需明確說明setLayout(new BorderLayout())
  26. this.setTitle("線程中斷在Swing進度條的使用");
  27. this.pack();
  28. this.setVisible(true);
  29. this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  30. this.creatThread();
  31. thread.start();
  32. // thread_instance.setContinue(false); //另一種中斷線程方式
  33. thread.interrupt();
  34. }
  35. class Thread_instance implements Runnable{
  36. boolean isContinue=true;
  37. public void setContinue(boolean b){
  38. this.isContinue=b;
  39. }
  40. @Override
  41. public void run() {
  42. // TODO Auto-generated method stub
  43. int count=0;
  44. while(true){
  45. progressBar.setValue(++count);
  46. try {
  47. Thread.sleep(1000);
  48. } catch (InterruptedException e) {
  49. // TODO Auto-generated catch block
  50. System.out.println("當前程序被中斷");
  51. break;
  52. }
  53. if(!isContinue){
  54. break;
  55. }
  56. }
  57. System.out.println("here");
  58. }
  59. }
  60. void creatThread(){
  61. thread=new Thread(new Thread_instance());
  62. }
  63. static void init(JFrame frame,int width,int height){
  64. frame.setSize(width,height);
  65. }
  66. public static void main (String[] args){
  67. init(new ThreadAndSwing(),300,100);
  68. }
  69. }
Copyright © Linux教程網 All Rights Reserved