0

我试图将我的大脑包裹在一般的摇摆工人身上,但目前我什至难以实施它们。我在一个单独的类中尝试了这个但得到了一个错误,但现在我仍然得到这个错误,因为我已经根据我在网上找到的一些代码对其进行了建模。我得到的错误是它“是抽象的,不会覆盖 SwingWorker 中的抽象方法 doInBackground()”。

    SwingWorker zoomWorker = new SwingWorker() {
    @Override
    public Integer[] doInBackground(int quadrant, boolean zoomed) {

        Integer[] zoomData = new Integer[4];


    return zoomData;
    }


    };

任何帮助将不胜感激 - 我已经阅读了大量的教程,但在修辞中迷失了方向。

4

2 回答 2

3

首先编写一个扩展的具体类,SwingWorker以便可以传入参数。

然后

声明 的第一个参数类型SwingWorker以匹配 的返回类型doInBackground。用于publish通知EDT中间结果和完成结果

 class MyWorker extends SwingWorker<Integer[], String> {

    private int quadrant;
    private boolean zoomed;

    public MyWorker(int quadrant, boolean zoomed) {
        this.quadrant = quadrant;
        this.zoomed = zoomed;
    }

    @Override
    protected Integer[] doInBackground() throws Exception {
        Integer[] zoomData = new Integer[4];

        // use quadrant && zoomData...
        publish("Intermediate data...");
        ...

        publish("complete");
        return zoomData;
    }
};

阅读:为什么我们需要 SwingWorker?

于 2013-09-21T18:49:55.900 回答
0

doInBackground不应该接受争论。由于您甚至没有使用quadrantor zoomed,因此请删除它们。

于 2013-09-21T18:48:54.203 回答