2

我想运行新的 Swing 线程并将参数传递给它们。像这样的东西:

String str;

SwingUtilities.invokeLater(new Runnable() {
public void run() {
    Play game = new Play(this.str);
        game.setVisible(true);
    }
});

我找到了答案,如何将参数传递给线程,但我不确定如何根据需要重建它。感谢您的想法。

4

2 回答 2

3

或者,您的匿名Runnable用户可以访问封闭范围内的最终字段:

final String str = "one";

SwingUtilities.invokeLater(new Runnable() {
    @Override
    public void run() {
        Play game = new Play(str);
        game.setVisible(true);
    }
});
于 2013-04-14T09:17:23.230 回答
0

你不能。而是制作一个新的Thead

编辑:这是一些代码,因为你很困惑。

import javax.swing.SwingUtilities;

public class Main {
  public static void main(String[] args) {
    SwingUtilities.invokeLater(new MyThread("StackOverflow"));
  }

  private static class MyThread extends Thread {
    String text;

    public MyThread(String text) {
      this.text = text;
    }

    @Override
    public void run() {
      System.out.println(this.text);
    }
  }
}
于 2013-04-14T09:07:11.690 回答