Swing Runnable с параметрами
Я хотел бы запустить новый поток Swing и передать в них параметр. Что-то вроде этого:
String str;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Play game = new Play(this.str);
game.setVisible(true);
}
});
Я нашел ответ, как передать параметр в поток, но я не уверен, как восстановить его для моей необходимости. Спасибо за идеи.
2 ответа
Решение
В качестве альтернативы, ваш аноним Runnable
может получить доступ к последним полям в прилагаемой области видимости:
final String str = "one";
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
Play game = new Play(str);
game.setVisible(true);
}
});
Ты не можешь Вместо этого создайте новую Теаду.
Изменить: Вот некоторый код, так как вы в замешательстве.
import javax.swing.SwingUtilities;
public class Main {
public static void main(String[] args) {
SwingUtilities.invokeLater(new MyThread("Stackru"));
}
private static class MyThread extends Thread {
String text;
public MyThread(String text) {
this.text = text;
}
@Override
public void run() {
System.out.println(this.text);
}
}
}