Witam. Mam pewien problem, otóż próbuję przekazać referencję obiektu do konstruktora innej klasy, którego wywołuję jako wątek. Otóż jestem w stanie się odwołać do tego obiektu z pozycji konstruktora, ale z poziomu metody run() już nie. Sęk w tym, że potrzebuję się odwołać do obiektu właśnie w tej metodzie.
W ten sposób przekazuję referencję obiektu do innej klasy.
new Thread(new StartSearchingThread(layoutEnvironment)).start()
A tutaj klasa tworząca wątek:
public class StartSearchingThread extends Thread {
private LayoutEnvironment layoutEnvironment;
public StartSearchingThread(LayoutEnvironment layoutEnvironment) {
this.layoutEnvironment = layoutEnvironment;
//layoutEnvironment.uiProgressBar.setVisible(true);
}
@Override
public void run() {
runSearchingThread(layoutEnvironment);
}
private void runSearchingThread(LayoutEnvironment layoutEnvironment2) {
layoutEnvironment.uiDisplay.asyncExec(new Runnable() {
public void run() {
startDesignApp();
}
private void startDesignApp() {
layoutEnvironment.uiStatusLabel.setText(Settings.SEARCHING_START);
layoutEnvironment.uiProgressBar.setVisible(true);
layoutEnvironment.uiSearchButton.setVisible(false);
layoutEnvironment.uiDevicesListTable.setEnabled(false);
layoutEnvironment.uiDevicesListTable.removeAll();
layoutEnvironment.uiCancelButton.setVisible(true);
try {
//layoutEnvironment.uiManage.setEnabled(false);
//layoutEnvironment.uiManage.setVisible(false);
} catch (Exception e) {
System.out.println(Settings.NOT_EXITS_MESSAGE);
}
}
});
}
}