Haupt JFrame inkl. aller Komponenten aktualisieren?

Arp

Mitglied
Hi!

Ich schreibe mir grad ein kleines Programm.

Ich habe eine main

Java:
public static void main(String args[])
{
	lese_daten();         // eingelesene variablen sind als static deklariert
	draw();
}

draw() besteht aus vielen Methoden die alle diverse Panels auf das JFrame MainWindow malen. MainWindow hab ich testweise als static variable deklariert.

Java:
public static void draw()
{
	///Initialisiere Main Window///
	MainWindow.setLayout(null);
	MainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	MainWindow.setSize(1000,700);
	MainWindow.setResizable(false);
	draw_lk();
	draw_sp();
	draw_ek();
        MainWindow.setVisible(true);
}

In einigen draws gibts einen button um das feld zu bearbeiten und zu speichern. Und da würde ich gerne noch einen aktualisierungsbefehl für das ganze JFrame einsetzen, aber ich krieg es nicht hin.
Ich hab .validate(), .repaint() etc. probiert.

z.b

Java:
MainWindow.dispose();
lese_daten();
MainWindow.validate();
MainWindow.show();

Alternativ auch

Java:
MainWindow.dispose();
lese_daten();
draw();

Aber das klappt alles nicht. Das Fenster verschwindet zwar und taucht neu auf, aber JLabels überschreiben sich und werden quasi doppelt angezeigt, das zu aktualisierende Panel auf dem Frame ändert sich nicht...

Habt ihr einen Vorschlag wie ich das aktualisieren einbauen kann?
thx.
 
das schreit eigentlich nur nach ner vernüftigen Klassen-Struktur und nem SwingUtilities.invokeLater...
ich neige dazu, je nach Umfang eines Containers (Frame,Panel ...) extra Klassen zu erstellen, in welcher ich dann auch alle nötigen Subkomponenten habe (Buttons, Labels, Trees).

Vielleicht solltest du da erstmal ansetzen. Ein validate und dispose und show wird alles nicht nötig sein. Das Aktualisieren geschieht von selbst, wenn du Methoden wie setText() oder dergleichen verwendest.
 
Hmm.... was? 🙂

Ich hab zwar alles in einer klasse, aber jede Gruppe hat eine eigene Methode so das sie nach belieben benutzt werden kann.
 
Das Problem sind (u.a.) Deine satischen Variablen und Methoden. Du solltest versuchen objektorientiert zu programmieren. In einem Anfängerprogramm sollte bis auf das static der main-Methode kein weiteres static vorkommen.
 

Neue Themen


Zurück
Oben