Componenten eines JFrames updaten

Status
Nicht offen für weitere Antworten.

Randall

Bekanntes Mitglied
Ich habe ein JFrame mit einer JComboBox und verschiedenen Buttons. Unter anderem kann man einen Eintrag aus der
JCombobox löschen. Die Daten für die Box kommen aus einer Datenbank.

Wenn nun ein Wert aus der Box gelöscht oder veräandert wird, muss das ganze ja wieder neu aufgebaut bzw. angezeigt werden. Wie mache ich das nun am besten? Ein einfaches validate() oder repaint() reicht ja nicht, weil die JComboBox ja wieder neu mit den Daten aus der DB gefüttert werden muss?

Die verschiedenen Komponenten sind im JFrame ins JPanels gezeichnet.
 

Randall

Bekanntes Mitglied
Das Model habe ich nun implementiert.

Aber das hilft mir nicht so weiter. Die Daten werden ja nicht in der ComboBox geändert bzw. gelöscht, sondern direkt in der DB. Wie kann ich also das ganze updaten, dass die Anzeige wieder stimmt? Hier mal ein paar Codeschnippsel.

So hole ich beim erstellen des JFrames die Daten für die JCombobox:

Code:
//Daten für JComboBox katBox holen
		SukeLogical katDat = new SukeLogical(user,pw);		
		allKat = katDat.getKategories();

allKat ist ein String[].

Etwas später wird dann die eigentliche JComboBox erstellt:

Code:
lowerBoxModel = new DefaultComboBoxModel(allKat);
		lowerKatBox = new JComboBox(lowerBoxModel);				
		lowerKatBox.setBackground(Color.WHITE);		
		lowerPanel.add(lowerKatBox,"2,1,3,1,l,c");
 

André Uhres

Top Contributor
Wie ich dir's oben gezeigt habe, brauchst du lediglich das neue Modell zu setzen sobald die neuen Daten da sind:
lowerKatBox.setModel(new DefaultComboBoxModel(allKat));
 

Randall

Bekanntes Mitglied
Alles klar ... hat super funktioniert. Manchmal ist die Lösung ja so einfach.. man muss nur drauf kommen...:)
 

Dit_

Bekanntes Mitglied
Hallo habe ähnliches Problem, deswegen schreibe ich hier...

also folgendes:

Ich habe für mein JComboBox eine extra Klasse ( AuswahlBoxModell), in dieser wird ein JComboBox erstellt und dann mit getter-Methode kann ich das Objekt in meiner HauptGui Klasse übergeben. und zwar so:

Java:
public class HauptGui {
...
{
				AuswahlBoxModell box = new AuswahlBoxModell(liste); // "liste" als String[]
				auswahlBox = box.getAuswahlBoxModell ();
			}
...
}

Jetzt habe ich in meiner HauptGui Klasse ein Button Löschen. Ich lösche einen eintrag in dem auswahlBox und und zwar so:

Java:
...
@Override
public void actionPerformed(ActionEvent e) {
auswahlBox.remove(auswahlBox.getSelectedIndex());
...
// hier wird mein Stringarray liste geändert
...
auswahlBox.setModel(new DefaultComboBoxModel(liste)); 
}


mache ich das Richtig, ich meine stilistisch? Ist das ok, dass ich mein JComboBox nicht über AuswahlBoxModell Klasse, sondern in meiner HauptGui Klasse ändere?
 

Dit_

Bekanntes Mitglied
ok verstehe du meinst ich soll das mit ListDataListener machen, also dass die Liste automatisch aktualisiert wird, und nicht durch
Java:
auswahlBox.setModel(new DefaultComboBoxModel(liste));

richtig ? :)
 

hdi

Top Contributor
Ne ich glaube nicht.. Ich weiss jetzt aber nicht genau wie das bei dir aufgebaut ist.
Was du tun solltest ist folgendes:

1) Klasse extends AbstractListModel implements MutableComboBoxModel. Da musst du dann halt alles sinnig implementieren, je nachdem wie deine Daten aussehen.
2) ComboBox erstellen und als Model eine Instanz von 1)
3) Beim Arbeiten mit der Box, zB bei deinem Löschen-buttons, dann die jeweiligen Methoden des Models von der Box aufrufen. Du musst nicht ständig neue Models erstellen.
 

Dit_

Bekanntes Mitglied
hmm
1 Frage: was bewirkt genau dieses
Java:
extends AbstractListModel

2 Frage
Java:
public class AuswahlBox extends AbstractListModel implements MutableComboBoxModel {
	
	/**
	 * Dies ist eine Referenz auf die ComboBox, die dieses Model verwendet.
	 */
	private JComboBox comboBox = null;
	
	
	/**
	 * Dies ist die Liste aller registrierter ListDataListeners.
	 */
    private ArrayList<ListDataListener> listDataListeners = null;

    /**
     * Dies ist die Liste aller enthaltener Daten.
     */
    private ArrayList<String> daten = null;

    /**
     * Dieser Index speichert das gerade angezeigte Element.
     */
    private int auswahl = 0;

    
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	public void addElement(Object arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void insertElementAt(Object arg0, int arg1) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void removeElement(Object arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void removeElementAt(int arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public Object getSelectedItem() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void setSelectedItem(Object arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public Object getElementAt(int arg0) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public int getSize() {
		// TODO Auto-generated method stub
		return 0;
	}
	
}

ist der Anfang schon mal richtig? wenn ich hier schon mal JComboBox Objekt erstelle, dann muss ich doch in meiner Gui nicht noch einmal ein JComboBox erstellen oder ? wenn doch, dann brauche ich vielleicht noch eine setMethode (oder im Konstruktor ein combobox objekt uebergeben) ?
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Mit for-schleife die Componenten eines Frames verändern AWT, Swing, JavaFX & SWT 5
E Swing Componenten werden nach Änderung des display modes verzerrt dargestellt AWT, Swing, JavaFX & SWT 8
kaoZ Frage zum einfügen von Componenten AWT, Swing, JavaFX & SWT 14
L Componenten im JFrame an genaue stelle verschieben. AWT, Swing, JavaFX & SWT 2
V Swing Componenten Array AWT, Swing, JavaFX & SWT 3
B Swing JMenu zwischen anderen Componenten AWT, Swing, JavaFX & SWT 4
J Swing Componenten übereinander platzieren. AWT, Swing, JavaFX & SWT 17
M SWT SWT Componenten auf GLCanvas zeichnen AWT, Swing, JavaFX & SWT 3
earlgrey_tea GridBagLayout Componenten proportional vergößern AWT, Swing, JavaFX & SWT 12
L LayoutManager Componenten über verfügbaren Platz strecken AWT, Swing, JavaFX & SWT 7
L Swing Serverbrowser, aber welche componenten? AWT, Swing, JavaFX & SWT 2
H SWT Breite von componenten zu bestimmen AWT, Swing, JavaFX & SWT 2
T JFrame Componenten Problem AWT, Swing, JavaFX & SWT 17
T Swing JSplitPane Componenten ausrichten AWT, Swing, JavaFX & SWT 4
lumo Swing Componenten ersetzen AWT, Swing, JavaFX & SWT 2
L Swing Kommunikation zwischen JMenuBar und anderen Componenten AWT, Swing, JavaFX & SWT 2
E Im Frame alle Componenten abrufen AWT, Swing, JavaFX & SWT 2
R Wie kann ich programmatisch Clicks auf Componenten ausfuehren? AWT, Swing, JavaFX & SWT 26
S Standpunkt von Componenten frei bestimmen AWT, Swing, JavaFX & SWT 10
R Thumbpanel bzw. Layout das Componenten in einem Grid anordnet ..? AWT, Swing, JavaFX & SWT 13
D verschieden große Componenten in einem JPanel? AWT, Swing, JavaFX & SWT 2
A Swing: Componenten in einem deaktivierten JPanel AWT, Swing, JavaFX & SWT 2
R HTML Hintergrund für Swing - Componenten AWT, Swing, JavaFX & SWT 2
G Suche 2 Componenten: Splitpane ausblenden / Stecknadel AWT, Swing, JavaFX & SWT 2
G SystemTray BubbleInfo an anderen Componenten anzeigen AWT, Swing, JavaFX & SWT 6
J durchsichtige componenten AWT, Swing, JavaFX & SWT 3
S Componenten werden nicht angezeigt AWT, Swing, JavaFX & SWT 3
thE_29 TableRenderer und JPanel => Abfrage auf Componenten Posit AWT, Swing, JavaFX & SWT 2
S Mehere Componenten setEnabled(false) in JToolBar AWT, Swing, JavaFX & SWT 4
M componenten im jframe erst nach fensterveränderung sichtbar AWT, Swing, JavaFX & SWT 2
S verhindern von drag-n-drop von swing componenten AWT, Swing, JavaFX & SWT 2
T Objektorientierung bei Componenten häh? AWT, Swing, JavaFX & SWT 5
D Componenten Problem - aktualisieren nach hinzufügen AWT, Swing, JavaFX & SWT 2
V JTable mit mehreren Componenten in einer Spalte ? AWT, Swing, JavaFX & SWT 6
jojoge wie kann ich in eine Benennung eines JButtons eine Variable einbauen? AWT, Swing, JavaFX & SWT 6
L paintComponent in Panel eines Borderlayouts hinzufügen AWT, Swing, JavaFX & SWT 3
I Einbindung eines jpg/png/icons in eine GUI AWT, Swing, JavaFX & SWT 1
Splayfer Umrandung eines AttributedStrings AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Einfachste Möglichkeit zum Abspielen eines Videos in Swing AWT, Swing, JavaFX & SWT 4
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
Jose05 zugreifen auf ein Objekt eines GridPanes AWT, Swing, JavaFX & SWT 0
melaniemueller Verschiebung eines Fensters über Button AWT, Swing, JavaFX & SWT 27
news2swen automatisches erstellen eines Languagefiles AWT, Swing, JavaFX & SWT 1
B Stylen eines JTextPane funktioniert nicht AWT, Swing, JavaFX & SWT 1
MiMa Schliessen eines FXML Fensters? AWT, Swing, JavaFX & SWT 10
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
L AWT Ändern der Farbe eines BufferedImage mit Farbähnlichkeit AWT, Swing, JavaFX & SWT 5
B veränderte Größe eines Panels im Vorhinein wissen? AWT, Swing, JavaFX & SWT 1
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
L JavaFX Validierung eines Spinner AWT, Swing, JavaFX & SWT 1
M Builden eines lauffähigen JAR Files AWT, Swing, JavaFX & SWT 3
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
M JavaFX rotieren eines Kreises mit konstanter Geschwindigkeit AWT, Swing, JavaFX & SWT 1
K JavaFX Allgemeine Fragen zu dem Aufbau eines Programms hinsichtlich der Klassen AWT, Swing, JavaFX & SWT 1
M JavaFX Auf ein UI Elemement eines anderen Controllers zugreifen AWT, Swing, JavaFX & SWT 0
P Bewegung eines Balkens in eineum JPanel welches als Spielfeld fungiert AWT, Swing, JavaFX & SWT 2
Tronert JavaFX Linienstärke eines Separators ändern? AWT, Swing, JavaFX & SWT 3
N JavaFX Group: Gezieltes entfernen eines Objects (Rectangle) AWT, Swing, JavaFX & SWT 0
J Ziehen eines Buttons im JPanel AWT, Swing, JavaFX & SWT 2
J Drag and Drop eines Buttons AWT, Swing, JavaFX & SWT 0
M NullPointerException bei Übergabe eines RadioButtons AWT, Swing, JavaFX & SWT 11
DaCrazyJavaExpert Swing Extern den Text eines nicht fetsgelegten Buttons bekommen. AWT, Swing, JavaFX & SWT 12
J JavaFX Rectangle innerhalb eines Rectangle oder Panes positionieren? AWT, Swing, JavaFX & SWT 1
C JavaFX Inhalt eines SplitPane's durch Menü-Auswahl ändern? AWT, Swing, JavaFX & SWT 13
J linken Bildausschnitt eines BufferedImage abschneiden AWT, Swing, JavaFX & SWT 4
J bestimmten Bereich eines JPanels drucken AWT, Swing, JavaFX & SWT 2
D LookAndFeel Überschreiben eines UIDelegate AWT, Swing, JavaFX & SWT 0
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
C Zeichen eines 6 -Eckes AWT, Swing, JavaFX & SWT 1
U JavaFX Wechsel der Scene nach betätigen eines Button AWT, Swing, JavaFX & SWT 2
F Screenshot eines JPanel AWT, Swing, JavaFX & SWT 3
S JavaFX TreeItem: Icon am Ende eines Eintrags anhängen AWT, Swing, JavaFX & SWT 2
D TAB Taste innerhalb eines JSpinner AWT, Swing, JavaFX & SWT 2
R Update eines Labels bei Methodenaufruf einer anderen Klasse AWT, Swing, JavaFX & SWT 9
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5
D Swing Komponenten Anordnung eines Panels in Verbindung eines weiteren Panels AWT, Swing, JavaFX & SWT 9
F Swing Rotation eines Bildes mit beliebigen Koordinaten um den Mittelpunkt AWT, Swing, JavaFX & SWT 3
Cromewell JavaFX Nur bestimmten Teil eines Canvas rendern und anzeigen AWT, Swing, JavaFX & SWT 2
Z Swing Variable eines Objekt aus Hashmap in JList anzeigen AWT, Swing, JavaFX & SWT 1
D Frame beim starten eines anderen Frames schließen AWT, Swing, JavaFX & SWT 2
R Hilfe beim ändern des Hintergrundes eines JFrames AWT, Swing, JavaFX & SWT 9
T Durch klicken eines Buttons Klasse wechseln AWT, Swing, JavaFX & SWT 2
E Swing Copy und Paste eines einzelnen Knoten aus einem JTree AWT, Swing, JavaFX & SWT 1
J Swing Vertikales Zeichnen eines Strings mit Java2D AWT, Swing, JavaFX & SWT 1
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
V JavaFX Teile eines Images Transparent machen AWT, Swing, JavaFX & SWT 4
I JavaFX Langes drücken eines Buttons AWT, Swing, JavaFX & SWT 4
B Swing Wie Witdh und Height eines GuiElements bekommen AWT, Swing, JavaFX & SWT 5
L Swing Teile eines JPanel in eigene Klasse auslagern AWT, Swing, JavaFX & SWT 3
M Swing JPanel innerhalb eines Frames verschieben AWT, Swing, JavaFX & SWT 3
J JavaFX Zugriff auf FXML-Variablen eines anderen Controllers AWT, Swing, JavaFX & SWT 2
K Swing Inhalt eines JPanels lesen AWT, Swing, JavaFX & SWT 3
T Nur bestimmte Bereiche eines Fotos bearbeiten AWT, Swing, JavaFX & SWT 0
J Swing Erstellung eines User Interface AWT, Swing, JavaFX & SWT 2
S JavaFX Teil eines Bildes ausschneiden / als neues Bild nutzen AWT, Swing, JavaFX & SWT 8
R Swing Bewegung eines Graphics Objektes innerhalb eines JPanels funktioniert nicht richtig AWT, Swing, JavaFX & SWT 2
O Swing Aufbau eines JFrames AWT, Swing, JavaFX & SWT 2
A JavaFX Hilfe beim Design eines Quiz AWT, Swing, JavaFX & SWT 2
F Instanzierung einer inneren Klasse in Klasse eines anderen Packets AWT, Swing, JavaFX & SWT 3
A befüllen eines JTables mittels Methode AWT, Swing, JavaFX & SWT 10

Ähnliche Java Themen

Neue Themen


Oben