Java 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); } }
相關推薦
Java Swing 執行緒執行任務(不然介面一直處於不可點選狀態)
/** * 使用了執行緒中斷在swing進度條中的應用,在run()中呼叫JProgressBar的setValue()方法。 * <p> * 本例應用了執行緒的中斷,2種中斷方法: * <ul> * <li>運用interr
java多執行緒:執行緒同步synchronized(不同步的問題、佇列與鎖),死鎖的產生和解決
# 0、不同步的問題 併發的執行緒不安全問題: 多個執行緒同時操作同一個物件,如果控制不好,就會產生問題,叫做執行緒不安全。 我們來看三個比較經典的案例來說明**執行緒不安全的問題**。 ## 0.1 訂票問題 例如前面說過的黃牛訂票問題,可能出現負數或相同。 [執行緒建立方式&&黃牛訂票
終止執行緒的方法(不看後悔,看了必懂)
在java語言中,可以使用stop()方法和suspend()方法來終止執行緒的執行. 當使用Thread.stop()來終止執行緒時,它會釋放已經鎖定的所有監視資源,具有不安全性 suspend()方法不會釋放鎖,容易發生死鎖(兩個或者兩個以上程序在執行過程中,因爭奪資源而造成程序間互
iOS多張圖片上傳多執行緒處理方法(可獲取最後一張上傳狀態後的訊號)
環境重現 1,服務端提供單張上傳的介面。 2,客戶端需求同時提交多張圖片上傳。 3,使用AFNetWorking 或 自封裝的帶有block回撥網路狀態的框架。 思路 1,建立一個管理類。 2,提供一個單例方法。保證管理類唯一 3,提供一個公共
NGUI之響應滑鼠事件(劃過、停留、點選等)
一、不管什麼響應,必須要新增碰撞器(要注意的是NGUI要用自己的方法來新增碰撞器) 二、給需要響應的遊戲物件或者預設物體新增兩個指令碼UIEventListener 和UIEventOver,如圖 三、假設現在要響應滑鼠停留在物體和移走物體時候的兩種訊息 給物件新增指令碼
Kotlin系列二(Kotlin實現RecyclerView加item點選處理)
上一篇分享了kotlin基礎語法,這一篇分享kotlin在Android開發中的實際應用,希望對正在學習的小夥伴有幫助。 新增的依賴: /*RecyclerView*/ implementation 'com.android.support:recyclervi
Java定時任務Timer排程器【二】 多執行緒原始碼分析(圖文版)
上一節通過一個小例子分析了Timer執行過程,牽涉的執行執行緒雖然只有兩個,但實際場景會比上面複雜一些。 首先通過一張簡單類圖(只列出簡單的依賴關係)看一下Timer暴露的介面。 為了演示Timer所暴露的介面,下面舉一個極端的例子(每一個介面方法面
java:執行緒池任務提交(Runnable、Callable、FutureTask)
任務的封裝與執行過程 (注:下面所說的Runnable物件,Callable物件都是指實現了該介面的類的物件) 之前要交給執行緒執行的任務我們都把它封裝在Runnable中。對於執行緒池而言,多了一種Callable的封裝方式。 Runnable:其中的run()方法沒有返回值。
java多執行緒5.任務執行
將應用程式的工作分解到多個任務中,可以簡化程式的組織結構,提供一種自然的事務邊界來優化錯誤恢復過程,並提供一種自然的並行工作結構來提升併發性 理想情況下,能找出清晰的任務邊界,各個任務之間是相互獨立的,任務不依賴於其他任務的狀態、結果或邊界效應。 在正常的負載下,伺服器應用程式應該同時表現出良好
【小家Java】一次Java執行緒池誤用(newFixedThreadPool)引發的線上血案和總結
相關閱讀 【小家java】java5新特性(簡述十大新特性) 重要一躍 【小家java】java6新特性(簡述十大新特性) 雞肋升級 【小家java】java7新特性(簡述八大新特性) 不溫不火 【小家java】java8新特性(簡述十大新特性) 飽受讚譽 【小家java】java9
java執行緒學習總結(一)
(宣告:並非原創,只是一個簡單總結) 一、執行緒和程序的概念: 程序:程序是處於執行過程中的程式,並且具有一定的對功能,是系統進行資源分配和排程的一個獨立單位。
Java多執行緒——執行緒優先順序與守護執行緒(Daemon Thread)
一、執行緒優先順序 每個執行緒都可以通過thread.setPriority()實現程序優先順序的設定。可設定的範圍在1-10之間,如果超過此範圍將丟擲異常throw new IllegalArgumentException()。每個執行緒的預設優先順序為5。 tips:即使將某個執行緒的優
java:多執行緒的基礎(引入)
* 1.什麼是執行緒 * 執行緒是程式執行的一條路徑, 一個程序中可以包含多條執行緒 * 多執行緒併發執行可以提高程式的效率, 可以同時完成多項工作* 2.多執行緒的應用場景 * 紅
java多執行緒快速入門(四)
通過匿名內部類的方法建立多執行緒 package com.cppdy; //通過匿名內部類的方法建立多執行緒 public class ThreadDemo2 { public static void main(String[] args) { new Thread(ne
java多執行緒快速入門(六)
多執行緒應用例項(批量傳送簡訊) 1、建立實體類 package com.cppdy; public class UserEntity { private int id; private String name; public int g
java多執行緒快速入門(七)
什麼是守護執行緒 守護執行緒是為使用者執行緒服務的這麼一個執行緒,主執行緒結束,守護執行緒也結束 package com.cppdy; class MyThread3 extends Thread{ @Override public void run() {
java多執行緒快速入門(八)
設定執行緒優先順序:join() package com.cppdy; class MyThreadA extends Thread{ MyThreadB b; public MyThreadA(MyThreadB b) { this.b=b; }
java多執行緒快速入門(九)
多執行緒安全問題(賣火車票案例) package com.cppdy; class MyThread5 implements Runnable{ private Integer ticketCount=100; @Override public void run() {
java多執行緒快速入門(十一)
在方法上面加synchonizd用的是this鎖 package com.cppdy; class MyThread7 implements Runnable { private Integer ticketCount = 100; public boolean falg = tr
java多執行緒快速入門(十二)
在靜態方法上面加synchonizd用的是位元組碼檔案鎖 package com.cppdy; class MyThread8 implements Runnable { private static Integer ticketCount = 100; public boolea