zoukankan      html  css  js  c++  java
  • 使用SwingWorker为界面执行异步任务

    当UI界面需要读取网络内容等耗时操作时,可以使用这个方法。

    添加按钮的点击事件:

    btnRun.addMouseListener(new MouseAdapter() {
    			@Override
    			public void mouseClicked(MouseEvent e) {
    				webRead();
    			}
    		});
    

     添加webReader方法:

    	public void webRead() {
    		new SwingWorker<StringBuilder, String>(){
    
    			@Override
    			protected StringBuilder doInBackground() throws Exception {
    				URL url=new URL("https://home.firefoxchina.cn/?from=extra_start");
    				URLConnection connection=url.openConnection();
    				BufferedReader reader=new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
    				String line;
    				StringBuilder builder =new StringBuilder();
    				while((line=reader.readLine())!=null) {
    //					publish(line);
    					builder.append(line).append("
    ");
    				}
    				reader.close();
    				return builder;
    			}
    
    			@Override
    			protected void process(List<String> chunks) {
    				for (String line:chunks) {
    					textArea.append(line);
    					textArea.append("
    ");
    				}
    				super.process(chunks);
    			}
    
    			@Override
    			protected void done() {
    				try {
    					textArea.setText(get().toString());
    				} catch (InterruptedException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				} catch (ExecutionException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    				super.done();
    			}
    			
    		}.execute();
    	}
    
  • 相关阅读:
    你不是在拯救世界就是在拯救世界的路上
    你可以去当程序员了
    郭美美是个好姑娘
    据说有个老太太
    生命的尽头
    有关程序的50个至理名言
    程序员是这样的
    新买移动硬盘
    如果有天你看到我疯了,其实就是你疯了
    写字楼里写字间
  • 原文地址:https://www.cnblogs.com/zhhy236400/p/10555318.html
Copyright © 2011-2022 走看看