2

新しい Swing スレッドを実行して、パラメーターを渡したいと思います。このようなもの:

String str;

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

パラメータをスレッドに渡す方法の答えが見つかりましたが、必要に応じて再構築する方法がわかりません。アイデアをありがとう。

4

2 に答える 2

3

または、anonymousは、外側のスコープ内のfinalRunnableフィールドにアクセスできます。

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

できません。代わりに新しいスレッドを作成してください。

編集:混乱しているので、ここにいくつかのコードがあります。

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 に答える