有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Swing Worker线程说在超类中没有Process()方法

我试图在更新GUI时实现SwingWorker线程。我知道process()方法是由EDT执行的,所以如果我需要更新GUI,我应该将更新代码放在该方法中

然而,当我试图重写process()方法时,我得到了一个错误,该方法没有实现来自超类型的方法

请问我是缺少什么还是Process()方法不再存在

class SwingWorkerThread extends SwingWorker<String, String> {

    @Override
    protected String doInBackground() throws Exception {
        String Pub = "A";

        for (int i = 0; i < 20; i++) {
            Pub = String.valueOf(i);

            publish(Pub);
        }

        return Pub;
    }

    @Override
    protected String process(String h) {
        System.out.println(Pub);
        MainFrame.TextArea.setText(Pub);
        return null;
    }

    @Override
    protected void done() {
        String status;
        status = get();
        try {

            System.out.println("Done");

        } catch (Exception ex) {
            System.out.println("Error: " + ex);
        }
    }

}

共 (2) 个答案

  1. # 1 楼答案

    SwingWorker上没有String process(String)方法。有一个void process(List<V>),这可能就是你想要的

    (这仍然无法解决Pub是一个局部变量且在该方法中不可见的事实。)