Aktualisierung von GUI

Status
Nicht offen für weitere Antworten.

djui

Mitglied
Hi!

Ich habe ein eigentlich ganz simples Problem, weiß aber nicht wie ich es lösen soll.

Mein GUI besteht aus drei Teilbereichen, welche ich über das BorderLayout manage. Oben befindet sich eine JComboBox, rechts eine JTextArea und links ein JPanel, welches JCheckBoxen aufgrund der Auswahl in der JComboBox, in das JPanel schreibt und so am GUI angezeigt werden soll.

Nun zu meinem Problem: Wird das GUI geladen, wird ja "automatisch" die actionPerformed Methode aufgerufen (vom JComboBox) und die erste Auswahl "ausgewählt". Aufgrunddessen lese ich bestimmte Daten aus einer DB und generiere danach, mit den Infos aus der DB, JCheckBoxen. Die werden ohne Probleme genereiert und angezeigt (im JPanel). Wähle ich erneut einen Eintrag aus, werden die korrekten Daten aus der DB geholt, die JCheckBoxen auch perfekt generiert und aufs JPanel gelegt, jedoch sieht man weiterhin die alten JCheckBoxen (von der vorherigen Auswahl). Warum wird das nicht aktualisiert? Ich habe es auch mit der Methode repaint versucht, aber es klappt nicht.

Vielen Dank für eure Hilfe und lg
 

foobar

Top Contributor
Poste doch mal etwas Code. Hast du das Panel neu gebaut, geaddet und das alte auch entfernt?
 

djui

Mitglied
Code:
panel= new JPanel(new GridLayout(collection.size(), 1));
JCheckBox cb= null;	
Rep r= null;
Iterator it = collection.values().iterator();

while (it.hasNext()) {
   r= (Rep) it.next();
				
   cb= new JCheckBox(r.getName());
   cb.setName(r.getName());
   cb.addActionListener(this);
				
   panel.add(cb);
}
this.add(panel, BorderLayout.WEST);


danke
 

foobar

Top Contributor
Wenn du das Panel neu bauen willst, mußt du das alte Panel zuerst entfernen, sonst wird das nichts.

Code:
private JPanel pnlMain;

private void initPanel()
{
  pnlMain = new JPanel();
   ... ueber Collection iterieren und Panel bauen
  add(pnlMain, Borderlayout.West);
}

private recreatePanel()
{
   remove(pnlMain); 
  initPanel();
}
 

djui

Mitglied
hi!

leider funkt das auch nicht....

hat sonst irgendwer noch tipps?

also es funktioniert ja alles super - die JCheckBoxen werden aufgrund der Auswahl und der Einträge in der DB richtig erzeugt. Ich leg sie dann aufs Panel (wie im oberen Src beschrieben), das GUI wird aber nicht aktualisiert. Ich hab es mal testhalber so gemahct, dass ich einen JDialog öffne, sobald sich die auswahl in der JComboBox ändert und auf diesem Dialog dann die generierten JCheckBoxen anzeige, dass funktioniert korrekt.

also liegt das problem irgendwo beim aktualisieren des JPanel. Irgendwer welche Ideen?

viele dank und lg
 

djui

Mitglied
ok, ich bin jetzt durch zufall draufgekommen, dass ihr mir das gui schon aktualisiert, nur nicht sofort anzeigt.

Hab, nachdem ich einen neuen Eintrag in der combo bxo ausgewählt habe, zufällig (einfach so) die größe des guis geändert, dann sind auch die richtigen (neu generierten) check boxen angezeigt worden.

gibt es irgendeine methode, die das automatisch macht? ich habs mit repaint versucht - funkt nicht, ich habs mit pack versucht - dann gehts, jedoch ändert sich dadurch natürlich die größe - das gefällt mir nicht gut. gibs da was?

danke
 
B

Beni

Gast
"validate()", ist so ein Befehl zwischen "pack" und "repaint".
 

djui

Mitglied
ok, danke, super, mit der methode funktionierts, hab aber trotzdem noch ein kleines problem damit, und zwar:

das panel wird aktualisiert, es wird aber keine check box angezeigt, sondern ein leeres panel. fahre ich dann mit der maus über das panel, erscheinen plötzlich die generierten check boxen. was is da los?

wird das panel nicht korrekt neu "gepaintet"?

danke
 

Brainiac

Bekanntes Mitglied
Das pack() und validate() muß nach dem entfernen und wieder hinzufügen passieren. danach noch eventuell ein repaint() sollte eigentlich klappen.
 
B

Beni

Gast
Hast du die CheckBoxen korrekt hinzugefügt? Befehle für die LayoutManager sind korrekt?

Zeichnest du irgendwo selbst etwas? Falls du irgendwo Transparenz eingesetzt hast, muss du "setOpaque( false )" aufrufen.

Und du hast nicht aus versehen Swing und AWT vermischt?
 

djui

Mitglied
Layoutmanager und hinzufügen der Componenten habe ich denk ich schon korrekt gemacht (siehe src von mir; ganz oben; genauso mach ichs auch im code).

Wie meinst du das mit dem "selbst zeichnen". ich verwende wirklich nur die Componenten von java und setze keine transparenz ein.

und was meinst du genau mit der vermischung zwischen swing und awt. also ich verwende eigetnlich nur swing componenten.

danke für die tolle hilfe und lg
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M TableView + Datenbank Aktualisierung AWT, Swing, JavaFX & SWT 4
N Aktualisierung des Fensters AWT Java ohne Ruckeln AWT, Swing, JavaFX & SWT 3
P Aktualisierung von jLabel in jFrames AWT, Swing, JavaFX & SWT 8
O JavaFX Aktualisierung der Scene AWT, Swing, JavaFX & SWT 1
D Swing keine JLabel-Aktualisierung bei "externem" Aufruf durch Helferklasse AWT, Swing, JavaFX & SWT 10
F Textfeld Währungszahlen und automatische Aktualisierung AWT, Swing, JavaFX & SWT 14
J Denkfehler bei Aktualisierung eines GUI AWT, Swing, JavaFX & SWT 4
S JTable nach aktualisierung - neue Zeile nicht "klickbar" AWT, Swing, JavaFX & SWT 0
T Tetris - Gui Aktualisierung AWT, Swing, JavaFX & SWT 2
Y JFormattedTextfield - Aktualisierung und Beschränkung AWT, Swing, JavaFX & SWT 4
dzim TableView - keine Aktualisierung geänderter Items AWT, Swing, JavaFX & SWT 5
B Aktualisierung einer JList AWT, Swing, JavaFX & SWT 5
D JTable Aktualisierung nach hinzufügen eines Datensatzes AWT, Swing, JavaFX & SWT 7
B Problem bei der Aktualisierung des Frames AWT, Swing, JavaFX & SWT 6
lumo SWT Resize und aktualisierung der gui AWT, Swing, JavaFX & SWT 6
B GUI Aktualisierung aus/und eventListener AWT, Swing, JavaFX & SWT 3
S Swing Aktualisierung Fensters AWT, Swing, JavaFX & SWT 7
K Modaler Dialog aber trotzdem Aktualisierung des MainFrames AWT, Swing, JavaFX & SWT 6
W Swing Aktualisierung des Bildes AWT, Swing, JavaFX & SWT 4
C JTable-Aktualisierung leidiges Thema AWT, Swing, JavaFX & SWT 18
Plastagen JTextArea CaretPosition Aktualisierung AWT, Swing, JavaFX & SWT 10
C permanente aktualisierung der Koordinaten der Maus auf einem Panel AWT, Swing, JavaFX & SWT 8
U JComboBox: (Vor)auswahl nach Aktualisierung AWT, Swing, JavaFX & SWT 2
kodela Swing Problem mit sofortiger Aktualisierung eine Textfeldes AWT, Swing, JavaFX & SWT 8
J Progressbar aktualisierung nach file übergabe AWT, Swing, JavaFX & SWT 7
T Aktualisierung einer JComboBox -> RepaintProblem! AWT, Swing, JavaFX & SWT 3
H Aktualisierung Gui AWT, Swing, JavaFX & SWT 5
G Bessere Aktualisierung eines Frames AWT, Swing, JavaFX & SWT 5
P Problem bei Aktualisierung eines JPanels AWT, Swing, JavaFX & SWT 2
S Aktualisierung der GUI AWT, Swing, JavaFX & SWT 6
S Aktualisierung in regelmäßigen Abständen AWT, Swing, JavaFX & SWT 2
L Problem mit der aktualisierung von JTree und Text Area AWT, Swing, JavaFX & SWT 22
F Aktualisierung während MOUSE_PRESSED AWT, Swing, JavaFX & SWT 4
M swt - problem mit aktualisierung des tableeditors AWT, Swing, JavaFX & SWT 3
G Aktualisierung der Ausgabe in SWT AWT, Swing, JavaFX & SWT 2
A Aktualisierung eines Bildes innerhalb einer Komponente AWT, Swing, JavaFX & SWT 7
A JTable - Aktualisierung und Spaltenbreite AWT, Swing, JavaFX & SWT 5
W JTextArea als Logausgabe und Aktualisierung AWT, Swing, JavaFX & SWT 3
C zu späte aktualisierung/repaint AWT, Swing, JavaFX & SWT 3
X Probleme mit aktualisierung durch Repaint() Methode AWT, Swing, JavaFX & SWT 3
R Thread-Problem (Aktualisierung von JLabel-Komponente) AWT, Swing, JavaFX & SWT 9
M problem mit textfield-aktualisierung AWT, Swing, JavaFX & SWT 4
G JScrollPane problem mit aktualisierung der daten AWT, Swing, JavaFX & SWT 3
L Aktualisierung bei JTabbedPane AWT, Swing, JavaFX & SWT 3
T Swing bei Realtime-Aktualisierung zu langsam? AWT, Swing, JavaFX & SWT 10
M JCombobox aktualisierung, beim wecheseln des Tab JTabbedPane AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben