1. 程式人生 > >使用SwingWorker 點選按鈕後,按鈕不讓點選,在處理完之後,顯示為可點

使用SwingWorker 點選按鈕後,按鈕不讓點選,在處理完之後,顯示為可點

	public void actionPerformed(ActionEvent e) {
		btn_convert.setEnabled(false);
		new ConvtSwingWorker().execute();
	}

	private class ConvtSwingWorker extends SwingWorker<Void, Void> {
		@Override
		protected Void doInBackground() throws Exception {
			StringWriter sw = new StringWriter();
			PrintWriter pw = new PrintWriter(sw);
			log.append("begin to convert ..." + TLSwing.newline);
			if (txt_source.getText().equals("")) {
				log.append("please input source file...");
			} else {
				log.append("begin to convert ..." + txt_source.getText() + TLSwing.newline);
				file_source = new File(txt_source.getText());
				try {
					in = new FileInputStream(file_source);
					if (file_source.getName().endsWith("xlsx")) {
						workbook = new XSSFWorkbook(in);
						XSSFSheet sheet = workbook.getSheetAt(0);
						Sheet sheet2 = workbook.getSheetAt(0);
						for (Row row : sheet2) {
							if (row.getRowNum() != 0) {
								for (Cell cell : row) {
									// log.append(getCellValue(sheet.getRow(2).getCell(2)));
									log.append(getCellValue((XSSFCell) cell) + TLSwing.newline);
									try {
										Thread.currentThread().sleep(100);
									} catch (InterruptedException e4) {
										// TODO Auto-generated catch
										// block
										e4.printStackTrace(pw);
										log.append("InterruptedException" + TLSwing.newline + sw.toString()
												+ TLSwing.newline);
									}
								}
							}

						}

					} else {

					}
				} catch (IOException e1) {
					e1.printStackTrace(pw);
					log.append("IOException" + TLSwing.newline + sw.toString() + TLSwing.newline);
				} finally {
					if (in != null) {
						try {
							in.close();
						} catch (IOException e2) {
							e2.printStackTrace(pw);
							log.append("IOException" + TLSwing.newline + sw.toString() + TLSwing.newline);
						}
					}
				}
			}
			return null;
		}

		@Override
		protected void done() {
			btn_convert.setEnabled(true);
		}
	}


相關推薦

使用SwingWorker 按鈕按鈕處理之後顯示

public void actionPerformed(ActionEvent e) { btn_convert.setEnabled(false); new ConvtSwingWorker().execute(); } private class Con

JavaScript | 阻止預設事件 按鈕input框失去焦點

想實現一個登入介面常用的效果:點選按鈕後切換input框的顯示/隱藏密碼 首先想到的是,在按鈕的點選事件裡呼叫focus()使input獲得焦點,程式碼如下: <body> <i

Apache、IIS、Nginx等絕大多數web服務器允許靜態文件響應POST請求否則會返回“HTTP/1.1 405 Method not allowed”錯誤。

.com rewrite requested gin pos 2.0 $2 127.0.0.1 page   例1:用Linux下的curl命令發送POST請求給Apache服務器上的HTML靜態頁 [root@new-host ~]# curl -d 1=1 http:/

python *args **kwargs傳入固定的參數給函數或者傳入很多的內容給函數常用在構造函數中。

沒有 常用 但是 避免 內容 自動 基本 name 調用 ‘‘‘ 例1:展示*args的用法,傳入多個參數,不進行預先定義。 本例傳入了3個參數。沒有預先定義。在函數內自動生成元組() ‘‘‘ def q1(*args): print(‘例1‘) prin

checkbox設置復框的只讀效果用戶勾

IV name ble HR 可用 操作 直接 有時 取消 在Web開發中,有時候需要顯示一些復選框(checkbox),表明這個地方是可以進行勾選操作的,但是有時候是只想告知用戶"這個地方是可以進行勾選操作的"而不想讓用戶在此處勾選(比如在信息展示頁面),這時候就需要將復

圖解112-蛇蛋圖:哎呀小心了.PHP圖片處理分析問題!

span open inf 生成 req random 內容 當我 訪問 在yii2應用中,使用imagine庫生成分享圖實戰。 這個需求現在特別常見,比如生成小程序分享圖、生成朋友圈分享圖等等,一般是文字 + 二維碼 + 背景模板。今天我們使用imagine來完成這件事情

記憶體佔用過高快取釋放導致宕機處理方案

故障現象: 1、某分行部署的某臺伺服器記憶體佔用過高,導致宕機; 2、程式碼層面檢查暫未發現問題,伺服器硬重啟持續一段時間後(3-5天)再次佔滿。 發現問題: 趕往現場後進行檢查,當時是一切正常的,今有DB2程序佔用18%,在正常範圍內; 在crontab 中發現有兩個指

對於大於 11 的數如果除了 11 和它本身能再被其它正整數整除那麼我們說它是一個質數。

對於大於 1 的數,如果除了 1 和它本身,它不能再被其它正整數整除,那麼我們說它是一個質數。曉萌想判斷一個數是不是質數,希望找你寫個程式,幫助她進行判斷。 輸入格式 輸入包括一行,為一個整數 N(1<N≤1000),正是曉萌給出你讓你判斷的數字。 輸出格式 輸出包

PTA 陣列迴圈左移 (20 分) 本題要求實現一個對陣列進行迴圈左移的簡單函式:一個數組a中存有n(>0)個整數允許使用另外陣列的前提下將每個整數迴圈向左移m(≥0)個位置即將a中的

陣列迴圈左移 (20 分) 本題要求實現一個對陣列進行迴圈左移的簡單函式:一個數組a中存有n(>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向左移m(≥0)個位置,即將a中的資料由(a​0​​a​1​​⋯a​n−1​​)變換為(a​m​​⋯a​n−

axios傳送post請求java端獲取到資料原因及處理

場景/功能描述:     最近再學習前端的框架vue,發請求使用的是axios,自己簡單的寫了個後端,實現一個學生列表的crud,web層使用的是springmvc,並使用jq的$.ajax方式測試過介面沒問題。 出現的問題:     已經再次確保後端介面能接收jquery

CentOS 7安裝之後游標一直閃爍了系統裡面應該是顯示卡太老了沒有支援的驅動程式

On some really ancient computers, even this won't work. In that case you'll need to do a text mode installation. Do this by selecting Inst

Android 擷取指定號碼的簡訊並且系統獲取簡訊通知使用者

Java 程式碼   public class ScreenTest extends Activity {   class SmsContent extends ContentObserver{   private Cursor cursor = null;   

在jsp裡面實現註冊新使用者的功能但是能把資料插入到資料庫中是怎麼回事求助我的程式碼如下

RegisterServer.java package com.cqnu.service; import com.cqnu.dao.UserDao; import com.cqnu.pojo.DBCon; import com.cqnu.pojo.UserPojo; imp

隨機產生10個0-100之間的隨機數重複的數存入到list中最終將結果輸出在控制檯上(2018-8-7)

package com.sj.zy; import java.util.ArrayList; import java.util.HashSet; import java.util.Set; public class Zy02 { public static void

winform禁用控制元件控制元件變為灰色

[System.Runtime.InteropServices.DllImport("user32.dll ")] public static extern int SetWindowLong(IntPtr hWnd, int nIndex,

研發做好了產品一定能賣掉;研發做不好沒東西

  在反省公司問題時,吾當然重點是從研發角度考慮問題,因為汝領導縱容,導致研發放羊半年多,該做的事情都沒做,現在兩手空空……   隨後吾自我反駁:研發做好了,就等於產品能賣掉?當然不是。研發做得好,產品也足夠好,可能照樣賣不掉。   有人就樂了,那產品做不好也無所謂嘍?那

mysql 使用ip地址連接上;MySQL 可以用localhost 連接能用IP連接的問題局域網192.168.*.* 無法連接mysql

strong 連接mysql 修改 class 密碼修改 登錄密碼 窗口 com 沒有 原因: Mysql 默認是沒有開啟這個權限的(只允許使用 host:localhost,或者 host:127.0.0.1),如果想用 host:192.168.1.* (IP地址

19道Python循環遍歷,while,for語句測試題網上看到的題目自己看答案全部做了一次總共3個小時左右

對稱 乘法 次數 輸入 一半 r語 整除 回文數 同時 # 1. 輸出10行內容,每行的內容都是“*****”。for i in range(0,10): for j in range(0,10): print("*",end="

曹工談Spring Boot:Spring boot中怎麼進行外部化配置留神摔一跤;一路debug原來是我太年輕了

# spring boot中怎麼進行外部化配置,一不留神摔一跤;一路debug,原來是我太年輕了 # 背景 我們公司這邊,目前都是spring boot專案,沒有引入spring cloud config,也就是說,配置檔案,還是放在resources下面的,為了區分多環境,是採用了profile這種方式

現在越來越喜歡用ajax傳值了這樣能網站的體驗性很好今天就總結了一下常用的

click put nbsp index.php 常用 體驗 code size .get 這是不用循環的方法 就是傳過來的是一位數組 //編輯黨建分類 function gk_bj(id){ $.post("{:U(‘Luser/lei_edlt