Я создаю приложение GUI, и в фоновом режиме я хочу запустить дополнительную задачу. Я вставлю код, чтобы предотвратить вставку беспорядка кода, который был сгенерирован Swing, я оставлю некоторые части, предположим, что window.java работает по назначению.Передача объектов в другой поток
window.java:
public class window {
frame = new JFrame();
JLabel lbl1 = new JLabel("Start Counter");
frame.add(lbl1);
Thread counter = new Thread(new counter());
counter.start();
}
counter.java
public class regCheck extends window implements Runnable
{
public void run()
{
int i = 0;
while (true)
{
window.lbl1.setText(i);
try {Thread.sleep(1000);}
catch (InterruptedException e) {e.printStackTrace();}
i++;
}
}
}
, что я хочу, чтобы этот пример сделать, это создать ярлык в окне и сосчитать вверх, пока программа не будет закрыта. Простой ответ здесь заключается в том, чтобы сказать «пройти в Джлабель», но на самом деле у меня есть несколько вещей, которые мне нужно изменить не только на этикетке.
строка "window.lbl1.setText (i);" здесь не работает, это просто для иллюстрации того, чего я хочу достичь.
Прошу прощения за то, что мои знания на самом деле очень просты в Java на данный момент. , поэтому вместо доступа через counter.java, я создаю метод в окне.java, который обновит это значение с помощью аргумента, а затем вызовет метод из counter.java Я создаю окно в методе «initialize», и поэтому все мои объявления элементов находятся в инициализации, поэтому я застрял с аналогичным проблема получения объектов из одного метода в этот новый метод, который я вызову с помощью counter.java – penfold1992
, проблема в том, что метод инициализации моего окна содержит весь код для окна ... так что из класса счетчика следующий код вызывает issue window a = новое окно; Это запускает несколько экземпляров главного окна, которое не является тем, что я хочу, особенно потому, что в настоящее время это нецелесообразно, когда я не могу передать панель задач от инициализации до нового метода – penfold1992