我在FileReader上应用SwingWorker时遇到问题,我的观点是我需要在SwingWorker上实现FileReader,以使UI显示文件中的文本,这是我的代码
class Read1 extends SwingWorker<String,String>{ protected Void doInBackground() throws Exception{ FileReader read = new FileReader("msg.txt"); BufferedReader in = new BufferedReader(read); String s; s=in.readLine(); System.out.println(s); return s; } protected void done() { try{ String show; show=get(); textArea.append(show);}catch(Exception e){}} public static void main(String args[]) { Read1 r = new Form().new Read1(); r.execute();
但是,它不会在UI文本区域上附加任何内容
有人有解决方案吗?谢谢
对我来说效果很好:
public class Reader extends SwingWorker<List<String>, String> { protected List<String> doInBackground() throws Exception { ArrayList<String> lstText = new ArrayList<String>(25); BufferedReader in = null; try { FileReader read = new FileReader("Scanner.txt"); in = new BufferedReader(read); String s = null; while ((s = in.readLine()) != null) { lstText.add(s); publish(s); } } finally { try { in.close(); } catch (Exception e) { } } return lstText; } @Override protected void process(List<String> chunks) { for (String text : chunks) { fldText.append(text + "\n"); } } @Override protected void done() { } }