SwingWorker:令牌上的语法错误"执行" - ?

时间:2015-03-29 05:53:43

标签: java swingworker

我正在尝试使用SwingWorker但由于某些原因worker.execute();我收到以下错误:

  

“令牌上的语法错误”执行“,此后预期的标识符   标记“

这没什么用,这是一个普通的错误,不管它多么愚蠢,它已经折磨了我好几个小时..我已经看到在课外的其他地方移动SwingWorker可能会解决它,但我不明白为什么以及为什么以及为什么它不应该像这样工作!啊!

public class App {

    private App() {  // CONSTRUCTOR

        final int WINHSIZE = 2000;
        final int WINVSIZE = 2000;

        class Enjoy extends JPanel  {

            @Override
            public void paintComponent(Graphics g) {
                g.drawLine(0, 0, 2000, 2000);
            }

            class MyExecutor extends SwingWorker<Void,Void> { 

                @Override
                protected Void doInBackground() {
                    return null;
                }

                @Override
                protected void done(){ // runs on EDT

                }
            }

            MyExecutor worker = new MyExecutor();
            worker.execute(); // What the hell is going wrong here?

        }

        Runnable runner = new Runnable() { 
            @Override
            public void run() {
                JFrame f = new JFrame("Title");
                JPanel panel = new Enjoy();
                JScrollPane myScrollPane = new JScrollPane(panel);
                f.add("Center", myScrollPane);
                f.pack();
                f.setVisible(true);
            }
        };

        SwingUtilities.invokeLater(runner);

    }

    public static void main(String[] args) {
        new App();
    } 
}

感谢。

1 个答案:

答案 0 :(得分:2)

worker.execute();必须在某个方法中,它不能直接在Enjoy类的范围内。