使用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);
		}
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值