SwingWorker:令牌语法错误 "execute" -?
SwingWorker: Syntax error on token "execute" -?
我正在尝试使用 SwingWorker,但出于某种原因,在 worker.execute();
我收到以下错误:
"Syntax error on token "execute", Identifier expected after this
token"
这没什么帮助,这是一个一般性错误,无论它多么愚蠢,它已经折磨了我几个小时。我已经看到将 SwingWorker 移动到 class 之外的其他地方可能会修复它,但我不明白它如何以及为什么以及为什么它不应该像这样工作!呃!
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();
}
}
谢谢。
worker.execute();
必须在某个方法里面,不能直接在你的Enjoy
class.
范围内
我正在尝试使用 SwingWorker,但出于某种原因,在 worker.execute();
我收到以下错误:
"Syntax error on token "execute", Identifier expected after this token"
这没什么帮助,这是一个一般性错误,无论它多么愚蠢,它已经折磨了我几个小时。我已经看到将 SwingWorker 移动到 class 之外的其他地方可能会修复它,但我不明白它如何以及为什么以及为什么它不应该像这样工作!呃!
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();
}
}
谢谢。
worker.execute();
必须在某个方法里面,不能直接在你的Enjoy
class.