Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe folgendes Problem. Ich habe ein Programm geschrieben, in dem ich in einem jFrame auf einen Button klicken will. Sobald der Klick ausgeführt wurde, soll sich das aktuelle Fenster schließen und ein anderes Fenster öffnen. Dann soll ein Programm im Hintergrund ablaufen und der aktuelle Status in dem neuen Fenster ausgegeben werden (z.B. an welcher Stelle das Programm gerade ist).
Nun zu meinem Problem: Es läuft alles wunderbar, außer dass das neue Fenster erst seinen Inhalt darstellt, wenn das Programm im Hintergrund fertig ist. Also das Frame öffnet sich, aber es lädt nicht zuende, bis das Programm fertig ist.
Lagere die Hintergrundarbeit mal in einen extra Thread aus. Die GUI sollte so lange blockiert werden, wie der Rechner im Hintergrund Berechnungen durchführt.
Danke, aber auch das funktioniert irgendwie nicht. Ich habe nun das Programm in zwei Threads aufgeteilt. Der erste Thread öffnet das Fenster und das zweite startet das Hintergrundprogramm. Aber das bringt den gleichen Effekt... Ich bekomme es nicht hin!
Danke, du hattest recht, dass hatte ich nicht beachtet! Jetzt noch eine andere Frage: Wie kann man am besten eine Hintergrundgrafik in einem Frame setzen. Mein Lösungsansatz ist garantiert nicht der beste...
Jetzt habe ich doch noch ein Problem: Das Frame wird nun korrekt angezeigt, jedoch zeigt er jetzt auch keine Änderungen in Labels an, wenn cih im Hintergrundprogramm da was neues reinschreibe.
Ich hoffe, das ist meine letzte Frage... Schon mal vielen Dank!
Die Labels müssen natürlich genauso über die SwingUtilities aktualisiert werden. Wenn du das tust, kommst du wohl nicht daran vorbei ein bisschen code zu posten
Das Frame ist offen und in Label steht der Text "Hello World!!!". Nun soll in einer for-Schleife der Text von Label geändert werden. Also irgendwie so:
Code:
for(int i = 0; i < 10; i++)
{
frame.Label.setText("irgendwas");
}
Bei jedem Schleifendurchlauf, soll das eben ersetzt werden. Wie muss ich das jetzt einbinden. Ich steh voll auf dem Schlauch...