Neuzeichnen eines JDialoges

  • Themenstarter Themenstarter Flow25
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
F

Flow25

Gast
Hallo zusammen,

in meiner Anwendung gibt es einen JDialog mit einer User-Tabelle. Klickt man auf einen User doppelt öffnet sich ein kleiner Dialog "Daten" in dem man die Daten des Users ändern kann. Bei einem Klick auf OK werden dann die geänderten Daten in die Datenbank geschrieben und eine Methode TabelleEinfügen() des Vater-Dialoges (der mit der User-Liste) aufgerufen. Diese Methode löscht die vorhanden User-Tabelle und erstellt sie über eine weitere Methode TabelleErstellen() neu.
Außerdem wird der Methode TabelleEinfügen() als Parameter der Dialog "Daten" übergeben und dieser geschlossen.
Die User-Liste aktualisiert sich richtig, aber leider bleibt der Schatten des geschlossenen Dialoges "Daten" vorhanden und überdeckt somit Teile der User-Liste. Mit ein paar Klicks in die User-Liste verschwindet der Schatten zwar, das Ganze ist aber doch recht unschön.
Hier mal der Code von der Methode TabelleEinfügen():

Code:
	public void TabelleEinfügen(EigeneDaten dia)
	{
		
		if (tabellenPanel.getComponentCount() != 0)
		  {            
		  
	        try
	        {
	          tabellenPanel.remove(0);     
	        }
	        catch (Exception except)
	        {
	          System.out.println("Tabellenlöschen fehlgeschlagen");
			  except.printStackTrace();
	        }
		  
		  }
		
		TabelleErstellen();
		
                                dia.dispose();
		dia.setVisible(false);
		
                                this.invalidate();
		this.validate();
		
		
	}

Ich habe zudem versucht direkt im Dialog "Daten" nach dem Methoden-Aufruf den Dialog zu schließen (also sich selbst). Das hatte aber denselben Effekt wie oben beschrieben.

Wie bekomme ich den Schatten weg??

Gruß Flow25
 
Also mit this.repaint() verschwindet die User-Liste komplett. Wenn ich das Panel, welches die Tabelle mit den Usern enthält mit tabellenPanel.repaint() neuzeichne so bleibt leider das Problem mit dem Schatten des Dialoges "Daten" gleich.

Hat noch jemand ne Idee???

Gruß Flow25
 
Bitte wieso verschwindete es bei einem repaint()

Dann leg das Programm mal runter (minimieren) und dann wieder rauf, dann müßte es auch weg sein => das ist nicht gut programmiert!

Da scheitert es dann schon irgendwo anders!
 
Nein, zunächst mal ist die Benutzerliste ein JDialog mit modal = true. Das heißt der lässt sich gar nicht minimieren.
Beim Hauptfenster gibt es auch eine Tabelle, die nicht verschwindet wenn ich das Fenster minimiere und wieder maximiere.
Alles kein Problem. Nur dieser blöde Schatten beim schliessen des Dialoges "Daten" erscheint immer über der User-Liste.

Kann mir da wirklich niemand eine Lösung sagen??

Gruß Flow25
 
Du kannst alles minimieren!

Drück mal WINDOWSTASTE + D und schau ob ers auch net zeichnet!
 
OK, du hattest Recht. Wenn ich mir die Daten eines Benutzers anschaue (im Dialog "Daten") und den Dialog schliesse ist ja der Schatten über der User-Liste. Minimiere ich dann die Gesamte Anwendung und Maximiere sie wieder, so ist die User-Liste verschwunden. Bei allen anderen Tabellen taucht dieses Phenomemen nicht auf.

Woran kann sowas liegen?

Gruß Flow25
 
Du entfernst es, oder machst es irgendwo unsichtbar!


Und da du keine repaint drinnen hast, isses dir net aufgefallen, machst du eines rein oder minimierst du es und stellst du es wieder neu her, so muß er es neu zeichnen und deswegen fehlts!

Mußt du in deinem SourceCode suchen, weil soweit kann ich dann auch wieder net hellsehen 😉
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben