使用SwingWorker 点击按钮后,按钮不让点击,在处理完之后,显示为可点

来源:互联网 发布:淘宝袜子尺码 编辑:程序博客网 时间:2024/05/22 01:37

public void actionPerformed(ActionEvent e) {btn_convert.setEnabled(false);new ConvtSwingWorker().execute();}private class ConvtSwingWorker extends SwingWorker<Void, Void> {@Overrideprotected 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// blocke4.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;}@Overrideprotected void done() {btn_convert.setEnabled(true);}}



0 0