Combobox füllen mit daten aus einer Tabelle

gehdecke

Mitglied
Hallo Genies,

ich habe mal eine Bitte/Frage ich sitze hier über einer Aufgabe und komme nicht weiter.

Ich wollte aus einer Datenbanktabelle mit Hilfe einer Methode mir die Einträge holen. Klappt auch:)

nun aber mein Problem wie kann ich das neue Item nun aber wieder als ID oder Namen nutzen?

Ich würde ja gerne eine ID und den Namen als Item nutzen und wenn ich dann einen Eintrag auswähle soll er mir die ID als neues Objekt ausgeben.

Java:
 public Vector<String> getNamen() { 
        Vector<String> columnNames = new Vector<String>(); 
        Vector<String> data = new Vector<String>(); 
        try { 
            //  Connect to the Database 
            //  Read data from a table 
            String sql = "Select name from abteilungen"; 
            Statement stmt = connection.createStatement(); 
            ResultSet rs = stmt.executeQuery( sql ); 
            ResultSetMetaData md = rs.getMetaData(); 
            int columns = md.getColumnCount(); 

            //  Get row data 
            while (rs.next()) { 
                Vector<Object> row = new Vector<Object>(columns); 

                for (int i = 1; i <= columns; i++) { 
                    row.addElement( rs.getObject(i) ); 
                } 
                data.addElement( row.toString() ); 
            } 
            rs.close(); 
            stmt.close(); 
        } catch(Exception e) { 
            System.out.println( e ); 
        } 
        return data; 
    } 
bis hier klappt es. Meine ComboBox hat diese Einträge drin.

// JComboBox Abteilungen 
        Vector<String> abteilungsnamen = dbManager.getAbteilungsnamen();  klappt
        java.util.List<Abteilung> abteilung        = dbManager.getAbteilungsliste();  klappt nicht:-(

Auf Deutsch oder besser was ich will ist:

Hallo Datenbank gib mir doch alle Einträge aus dem Feld Name und stelle Sie mir in einer Combobox zur Verfügung. Wenn ich nun einen neuen Eintrag auswähle gebe mir die ID und hinterlege Sie der aktuellen Person.

Schnell gesagt aber ich sitz jetzt hier 3 Tage dran und träume nachts schon davon :-( oder :))) es macht Spass aber ich komme nicht vorran:-((

Ich hoffe ihr könnt mir folgen und habt eine Idee wie Ihr mir helfen könntet.


10000000000 Dank Ihr lieben Leute
 

turtle

Top Contributor
Eine Combobox arbeitet mit einem ComboBoxModel zusammen, um Daten anzuzeigen.
Das Tutorial gibt gute Hinweise:
How to Use Combo Boxes (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)
Jedenfalls solltest du ein eigenes Model bauen, in dem die beiden Attribute (Id und Name) zusammengefasst werden. Wenn ein solches Objekt der Combobox hinzugefügt wird, ruft Swing standardmässig die toString()-Methode deiner Klasse auf. Diese wird, sofern du sie nicht überschreibt, nicht die richtigen Informationen liefern.

Wenn du einen Eintrag selektierst, wird der Eintrag aus dem Model,also deine Klasse, geliefert. Und da drin ja beiden Werte (ID, Name) stehen, hast du beide Informationen sofort zur Verfügung.

Du kannst ein eigene ComboBoxModel-Klasse schreiben oder, (zunächst) einfacher, von DefaultComboBoxModel erben.

Du kannst später auch einen eigenen ListCellRenderer schreiben, der dann deine Werte so "malt", rendered, wie du es möchtest. Beispielsweise kann deine Combobox statt Ländernamen, die entsprechende Flagge als Bild anzeigen.
 
Zuletzt bearbeitet:

turtle

Top Contributor
So, ich bin jetzt zu Hause am Rechner und habe ein kleines Testprogramm geschrieben, das mein Gesagtes verdeutlicht.
Am Screenshot siehst du wie es aussieht.

Java:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

@SuppressWarnings("serial")
public class SimpleComboBoxDemo extends JPanel {
	String name;
	Integer id;

	public SimpleComboBoxDemo() {
		super(new BorderLayout());


		SimpleComboBoxDemo[] items = new SimpleComboBoxDemo[] {
				new SimpleComboBoxDemo("Item1", 17),
				new SimpleComboBoxDemo("Item2", 97), };
		DefaultComboBoxModel<SimpleComboBoxDemo> dcm = new DefaultComboBoxModel<>(
				items);
		JComboBox<SimpleComboBoxDemo> cbx = new JComboBox<>(dcm);
		add(cbx);
		cbx.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent event) {
				JComboBox<SimpleComboBoxDemo> cb = ((JComboBox<SimpleComboBoxDemo>) event
						.getSource());
				SimpleComboBoxDemo selectedItem = (SimpleComboBoxDemo) cb
						.getSelectedItem();
				JOptionPane.showMessageDialog(
						null,
						"Id:" + selectedItem.getId() + " für "
								+ selectedItem.getName());

			}
		});
	}


	public SimpleComboBoxDemo(String name, int id) {
		this.name = name;
		this.id = id;

	}

	@Override
	public String toString() {
		return name;
	}

	private static void createAndShowGUI() {
		JFrame frame = new JFrame("SimpleComboBoxDemo");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		JComponent newContentPane = new SimpleComboBoxDemo();
		newContentPane.setOpaque(true);
		frame.setContentPane(newContentPane);

		frame.pack();
		frame.setVisible(true);
	}

	@Override
	public String getName() {
		return name;
	}

	@Override
	public void setName(String name) {
		this.name = name;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public static void main(String[] args) {
		javax.swing.SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				createAndShowGUI();
			}
		});
	}
}
 

Anhänge

  • SimpleCombo.png
    SimpleCombo.png
    24,4 KB · Aufrufe: 59
Zuletzt bearbeitet:

gehdecke

Mitglied
Hallo turtle,

super von Dir das nenne ich mal Hilfe damit habe ich es jetzt verstanden und werde es heute Abend gleich mal einbinden (meine Kenntnisse:) ) wenn ich noch Fragen habe kann ich diese dann noch stellen?

Ich finde es gut das es Menschen gibt die es so machen wie Du, dadurch lernt man doch am besten und kann probieren. PERFEKT


PS wie kann man sich hier bedanken?


LG
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Drop down Button Menü (Combobox) Allgemeine Java-Themen 7
M javafx ComboBox- Nullpointer Exception Allgemeine Java-Themen 6
O 2 Combobox in Abhängigkeit von der 1 Combobox (Datenbank) Allgemeine Java-Themen 1
S Array in Combobox ausnutzen??? Allgemeine Java-Themen 5
O MVC - wo Liste der ComboBox-Items ermitteln Allgemeine Java-Themen 3
A Java Verzeichnisse in Combobox Ausgeben JAVA Allgemeine Java-Themen 3
S ComboBox nimmt nur ein Item an Allgemeine Java-Themen 3
L List <Hauser> in Combobox einfügen Allgemeine Java-Themen 5
G ComboBox: Nur eine Art Klasse zulassen (Generics) Allgemeine Java-Themen 3
S Combobox --> liefer null? Allgemeine Java-Themen 3
G Combobox mit Zeitwerten Allgemeine Java-Themen 10
MQue Datum in ComboBox setzen Allgemeine Java-Themen 9
B ComboBox Allgemeine Java-Themen 4
D ComboBox definieren Allgemeine Java-Themen 2
L ComboBox -> SQL -> ArrayList -> JTable? Allgemeine Java-Themen 28
KeTho1712 Java Swing: JTable standardmäßig füllen, sodass bei Start bereits Datensätze gespeichert sind Allgemeine Java-Themen 1
M Aus XML ein Word-Dokument(Template) füllen Allgemeine Java-Themen 8
S iText: zweite Seitenhälfte mit vorhandenen pdf füllen Allgemeine Java-Themen 2
E Angabe wie groß Array sein soll und in for-schleifen diesen Array füllen Allgemeine Java-Themen 3
M JOpenDocument Odt Füllen Allgemeine Java-Themen 3
M Zweidimensionales Array mit Binärzahlen füllen Allgemeine Java-Themen 8
perlenfischer1984 Mit Lombok Builder Felder in Super Klasse füllen Allgemeine Java-Themen 12
B Arrays mit Text und Zahlen füllen Allgemeine Java-Themen 3
D TextBoxen füllen Allgemeine Java-Themen 1
S iText Cellen mit Attributen aus ArrayListen füllen Allgemeine Java-Themen 1
I quadratisches Array füllen Allgemeine Java-Themen 11
L Von ArrayList abgeleitete Klasse nur mit bestimmten Objekten füllen Allgemeine Java-Themen 1
F JTable mit Zellen die sich durch andere Eingaben füllen Allgemeine Java-Themen 1
E Mehrdimensionales array füllen Allgemeine Java-Themen 16
pg1337 Liste füllen Allgemeine Java-Themen 2
Screen Webformular füllen. Allgemeine Java-Themen 3
Q int-Array mit Zufallszahlen füllen Allgemeine Java-Themen 3
G Array mit neuen Objekten der selben Klasse füllen Allgemeine Java-Themen 2
V PDF und Formularfelder füllen? Allgemeine Java-Themen 3
T Hashmap füllen mit rs sortierung Allgemeine Java-Themen 9
G byte[] mit Strings füllen Allgemeine Java-Themen 2
L ArrayList füllen Allgemeine Java-Themen 2
W n Vectoren mit Vectoren füllen Allgemeine Java-Themen 11
S Array "automatisch" füllen Allgemeine Java-Themen 5
S Ein 'Document' füllen. Allgemeine Java-Themen 2
W Array mit Variablen aus Vararg füllen Allgemeine Java-Themen 4
F Probleme bei Array füllen Allgemeine Java-Themen 2
G JComboBox mit Werten aus einer Access Datenbank füllen Allgemeine Java-Themen 18
M 2d Array füllen? Allgemeine Java-Themen 3
D Strings dynamisch füllen Allgemeine Java-Themen 5
I Mehrere Klassen mit den selben Daten Allgemeine Java-Themen 5
padde479 Collections Daten in Dreiecksform Allgemeine Java-Themen 13
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
torresbig Url nach Webseiten-Login auslesen & Daten an Webseite senden Allgemeine Java-Themen 9
A Hartgecodete Daten auslagern Allgemeine Java-Themen 4
F Laden von bestimmten Daten aus TAR Archiv Allgemeine Java-Themen 23
S Webservices für binäre Daten? Allgemeine Java-Themen 5
OnDemand Daten in RAM zwischenspeichern oder lieber aus DB holen? Allgemeine Java-Themen 24
J Daten über serielle Schnittstelle empfangen Allgemeine Java-Themen 4
J JSON Daten von einer Webseite erhalten Allgemeine Java-Themen 2
S Entities aus XML - Daten. Allgemeine Java-Themen 1
M Schnelleres Speichern von XML-Daten über URLConnection Allgemeine Java-Themen 4
kodela Klasse mit "gezipten" Daten Allgemeine Java-Themen 6
M Daten aus MatLab Datei lesen Allgemeine Java-Themen 8
N Daten einer JCoTable in JTextArea anzeigen Allgemeine Java-Themen 7
kodela Klassen Klasse "vergisst" ihre Daten Allgemeine Java-Themen 2
C Daten für Klassifikationsverfahren gewinnen Allgemeine Java-Themen 6
J Daten von Quelltext Allgemeine Java-Themen 5
K OOP Daten addieren sich bei GUI-Eingabe Allgemeine Java-Themen 10
J Jasper Reports - Daten vom Hoster Allgemeine Java-Themen 2
kodela Daten während Laufzeit zugriffsbereit Allgemeine Java-Themen 15
J Millisekunde zwischen 2 Daten Allgemeine Java-Themen 6
Q Selbständig ActionEvent auslösen zum Daten senden über serielle Schnittstelle Allgemeine Java-Themen 7
J Daten aus Website-Quelltext auslesen Allgemeine Java-Themen 62
R Android Daten online senden Allgemeine Java-Themen 0
P Datenbank-MiniGUI fügt keine Daten ein Allgemeine Java-Themen 4
K Gespeicherte Daten von einer LinkedList auf vier LinkedList verteilen Allgemeine Java-Themen 6
Q-bert Daten von Java Programm speichern Allgemeine Java-Themen 4
K Datei (CSV-ähnlich) in Java einlesen & mit teil der Daten Graphen erstellen Allgemeine Java-Themen 9
A Erste Schritte Daten aus einer Website auslesen Allgemeine Java-Themen 7
OnDemand Desktop-Applikation schreiben, wie daten persistent? Allgemeine Java-Themen 9
S Erste Schritte Fehlender Gedanken-Ansatz bei Interpretation von Daten Allgemeine Java-Themen 1
J Auslesen Daten Java/HTML Allgemeine Java-Themen 15
K Große Mengen an Daten speichern Allgemeine Java-Themen 9
D Daten in MySQL-Datenbank schreiben Allgemeine Java-Themen 13
A Swing FileWriter schreibt keine Daten in Datei Allgemeine Java-Themen 13
M Daten aus anderen Programmen auslesen Allgemeine Java-Themen 2
D Best Practice Login-Daten: Wie am besten abrufen? Allgemeine Java-Themen 6
L Best Practice Log Dateien analysieren und eventuell passende Daten am Chart darstellen Allgemeine Java-Themen 1
J Serial Port Daten empfangen Allgemeine Java-Themen 5
H Daten via COM Schnittstelle erhalten Allgemeine Java-Themen 2
J Daten persistent speichern Allgemeine Java-Themen 14
S Allgemeine parallelisierte Loesung um Daten im Hintergrund zu laden..? Allgemeine Java-Themen 6
L Daten ohne Datenbank richtig abspeichern Allgemeine Java-Themen 5
G Daten aus Website auslesen Allgemeine Java-Themen 7
J Daten aus GUI auslesen und in Objekte umwandeln Allgemeine Java-Themen 6
O Serial Port Daten als Tastaturanschlag senden Allgemeine Java-Themen 0
N Zeitabstand zwischen 2 Daten(Mehrzahl von Datum) Allgemeine Java-Themen 3
T Input/Output Daten in eine Datei schreiben Allgemeine Java-Themen 4
Z daten bindung Allgemeine Java-Themen 1
A Datentypen Gregorian Calendar - 2 Daten sind gleich?? Allgemeine Java-Themen 3
L Vergleich-Xml-Daten Allgemeine Java-Themen 3
vandread Daten verschlüsseln mit Java oder Datenbank Allgemeine Java-Themen 15
A Daten in Formularen/Vorlagen erstellen und ausdrucken Allgemeine Java-Themen 3
C HtmlUnit Daten einer Tabelle bekommen ohne, dass diese eine ID aufweist Allgemeine Java-Themen 1

Ähnliche Java Themen

Neue Themen


Oben