H
Hotzenplotz
Gast
Hallo!
Ich weiß das Thema wurde hier schon oft besprochen aber ich glaube meins weicht einen ticken von den ganzen in einer Sache ab:
Ich erzeuge in meiner Haupt-GUI-Klasse ein neues Fenster das ich in der uploadDialog-Klasse beschrieben habe über:
in dieser uploadDialog-Klasse habe ich zum Beispiel auch ein Textfeld drin und sozusagen eine Setter-Methode für dieses Textfeld die folgendermaßen aussieht:
Diese Methode kann ich auch ohne Probleme aus einem Thread welcher im uploadDialog gestartet wird aufrufen und der Text wird je nach übergebenem String geändert.
In der display-Klasse (meinem Hauptfenster) habe ich das ganze mit einer setter-Methode für ein Textfeld in dieser analog gemacht.
Allerdings bekomme ich wenn ich aus dem Thread ODER aber dem uploadDialog die setter Methode aus der display-Klasse aufrufe die NullPointerException.
Ich bin noch relativ neu in JAVA und SWT aber ich habe das Gefühl, dass durch den geöffneten uploadDialog mein Hauptfenster blockiert wird, weshalb ich versucht habe den uploadDialog als eigenen Thread zu starten. Aber dann erscheint nach Klick auf den entsprechenden Button
mein uploadDialog erst gar nicht.
Eine weitere Möglichkeit wäre ja das zu ändernde Textfeld erst der uploadDialog-klasse zu übergeben und darauf dann dem Thread der was dort reinschreiben soll.
Allerdings würde ich es schicker finden wenn ich das ganze doch irgendwie über die Setter Methode hinkriegen kann...
Ich hoffe ihr könnt mir ohne weiteren Code weiterhelfen, ansonsten kann ich natürlich gerne noch etwas nachhelfen.
Gruß und danke schonmal für eure Hilfe
Hotzenplotz
Ich weiß das Thema wurde hier schon oft besprochen aber ich glaube meins weicht einen ticken von den ganzen in einer Sache ab:
Ich erzeuge in meiner Haupt-GUI-Klasse ein neues Fenster das ich in der uploadDialog-Klasse beschrieben habe über:
Java:
uploadDialog ud = new uploadDialog(shlTest, SWT.NONE);
ud.open();
in dieser uploadDialog-Klasse habe ich zum Beispiel auch ein Textfeld drin und sozusagen eine Setter-Methode für dieses Textfeld die folgendermaßen aussieht:
Java:
public static void setTxt_UpTime(final String s) {
Display.getDefault().asyncExec( new Runnable() {
@Override
public void run() {
if ( s != null ) {
txt_UpTime.setText(s);
}
}
});
}
Diese Methode kann ich auch ohne Probleme aus einem Thread welcher im uploadDialog gestartet wird aufrufen und der Text wird je nach übergebenem String geändert.
In der display-Klasse (meinem Hauptfenster) habe ich das ganze mit einer setter-Methode für ein Textfeld in dieser analog gemacht.
Allerdings bekomme ich wenn ich aus dem Thread ODER aber dem uploadDialog die setter Methode aus der display-Klasse aufrufe die NullPointerException.
Ich bin noch relativ neu in JAVA und SWT aber ich habe das Gefühl, dass durch den geöffneten uploadDialog mein Hauptfenster blockiert wird, weshalb ich versucht habe den uploadDialog als eigenen Thread zu starten. Aber dann erscheint nach Klick auf den entsprechenden Button
mein uploadDialog erst gar nicht.
Eine weitere Möglichkeit wäre ja das zu ändernde Textfeld erst der uploadDialog-klasse zu übergeben und darauf dann dem Thread der was dort reinschreiben soll.
Allerdings würde ich es schicker finden wenn ich das ganze doch irgendwie über die Setter Methode hinkriegen kann...
Ich hoffe ihr könnt mir ohne weiteren Code weiterhelfen, ansonsten kann ich natürlich gerne noch etwas nachhelfen.
Gruß und danke schonmal für eure Hilfe
Hotzenplotz