rückgabewert combobox

Status
Nicht offen für weitere Antworten.

kaka81

Mitglied
hallo zusammen,

bin ziemlicher anfänger im programmieren und habe folgendes problem:
ich habe ein jcombobox mit daten aus einer mysql datenbank befüllt. in der datebank gibt es 2 tabelle: restaurant und locations. restaurant ist über einen foreign key mit locations verknüpft. In locations gibts eine id spalte (primärschlüssel) und location (orte)
so nun zum eigentlichen problem:
ich befülle eine combobox mit den werten aus location, also nur dem namen der tabelle. wenn ich nun einen neuen datensatz anlegen will, muss ich natürlich einen ort auswählen. die combobox soll mir nun aber die id zurückliefern, damit mein insert into statement funzt...

wie geht das? mit "getselecteditem" oder "getindex" funzt es nicht, weil ich einen int als rückgabewert brauche und keinen string.

kann mir jemand weiterhelfen?

vielen dank schonmal im vorraus

lg
cm
 

FatFire

Bekanntes Mitglied
Ich würde an Deiner Stelle eine eigene Klasse schreiben, die neben einem String auch einen Integer-Wert speichert. Beim Auslesen aus der Datenbank füllst Du dann die JCombobox einfach mit diesen Klassen, vorher Name und ID natürlich aus der Datenbank nehmen und in Deine eigens geschriebene Klasseninstanzen hauen.
Immer dran denken: JCombobox nimmt nicht explizit String auf, sondern Objekte. Für die Darstellung wird im Normalfall einfach das Ergebnis von toString() genommen. Ach, hier mal Beispiel, einmal für die Klasse:
Java:
public class DataElement {

	private String text;
	private int id;
	
	public DataElement(int id, String text){
		this.text = text;
		this.id = id;
	}
	
	public int getID(){
		return id;
	}
	
	public String toString() {
		return text;
	}
}
Reinpacken in die JCombobox dann in etwa so:
Java:
box.addItem(new DataElement(1, "Titel"));
box.addItem(new DataElement(3, "Test"));
box.addItem(new DataElement(27, "Funktionuckelt"));
Und auslesen, wenn sich etwa die Auswahl geändert hat, so:
Java:
DataElement de = (DataElement)box.getSelectedItem();
System.out.println("Text: \"" + de + "\" ID: " + de.getID());

Gruß FatFire
 

Ezra

Bekanntes Mitglied
Stimmt denn die ID mit dem Index in der ComboBox überein? Dann könntest Du auch schreiben:
int wert = comBox1.getSelectedIndex();
 

FatFire

Bekanntes Mitglied
Manchmal ist es ein echtes Handicap nur im Anfängerteil des Forums zu jagen...naja, wenigstens war meine Idee auch genau der gleiche Weg.

Gruß FatFire
 

kaka81

Mitglied
das mit dem index funktioniert leider nicht, weil id != index, leider.

zur möglichen lösung von FatFire:
die daten kommen ja von der db.

das heißt also:

Java:
DataElement de = (DataElement)box.getSelectedItem();
System.out.println("Text: \"" + de + "\" ID: " + de.getID());

würde funktionieren, nur

Java:
box.addItem(new DataElement(1, "Titel"));
box.addItem(new DataElement(3, "Test"));
box.addItem(new DataElement(27, "Funktionuckelt"));

würde ich ja nicht benötigen, da die daten ja aus der db kommen oder?

danke und lg
cm
 

Michael...

Top Contributor
Java:
box.addItem(new DataElement(1, "Titel"));
box.addItem(new DataElement(3, "Test"));
box.addItem(new DataElement(27, "Funktionuckelt"));

würde ich ja nicht benötigen, da die daten ja aus der db kommen oder?
Naja irgendwie müssen die Daten ja in die ComboBox. Entweder über den Konstruktor oder über das Model, oder eben mit addItem()
 

Ezra

Bekanntes Mitglied
Und wenn Du Dir die IDs in einfach einem Array abspeicherst (Index des Arrays entspräche Index in der ComboBox)?
Das ist natürlich sehr simpel gedacht, aber das erste was mir dazu einfiele.
 

FatFire

Bekanntes Mitglied
Das würde natürlich auch gehen, aber warum zusammengehörende Daten trennen, wenn man sie auch einfach zusammen halten kann?

Gruß FatFire
 

kaka81

Mitglied
jawoll, besten dank leute. hat wunderbar funktioniert!!!
jetzt spiele ich mich noch etwas mit meinem jtable (von markierter reihe die daten auslesen), falls ich nicht zurecht komme, melde ich mich wieder.

also, vielen dank leute einstweilen!!! :toll:

lg
cm
 

kaka81

Mitglied
sorry leute, da war ich wohl zu schnell:
ich verwende dieselbe combobox noch in einem anderen frame wo mir ein jtable angezeigt wird.
jetzt möchte ich den jtable nach dem namen oder id (das ist jetzt egal) filtern, jedoch weiß ich nicht mit welchem eventlistener ich das machen soll.

actionlistener funktioniert aus irgendeinem grund nicht. der jtable soll sobald ich einen ort gewählt/angeklickt, habe sich aktualisieren. die abfrage hierzu hab ich schon, es geht wirklich rein nur um den eventlistener. habe schon fast alle ausprobiert, mousover, mouseclicked, propertychanged,...

habe nämlich auch einen button "show all" eingebaut und bei den meisten mouselistenern wird der event gestartet sobald ich mit der mouse über combobox drüberfahre.

das ich mehrere wählen kann ist klar, weiß nur nicht welche ich hier kombinieren soll?!

danke und gruß
cm
 

Ebenius

Top Contributor
Ist die ComboBox editierbar oder nicht? Wenn sie nicht editierbar ist, funktioniert der ActionListener auf jeden Fall so wie man es erwartet. Wenn sie editierbar ist, kann die Erwartung schon von den Tatsachen abweichen. In jedem Fall ist Dein Fehler bestimmt nicht ein fehlender ActionEvent. Erklär mal genauer wie der ActionListener nicht funktioniert; wird er nicht aufgerufen?

Ebenius
 

kaka81

Mitglied
also die combobox ist nicht editierbar.
verwende folgenden code im listener:

Java:
comboModel sort = (comboModel) searchLocation.getSelectedItem();

        try{
            rs = stmt.executeQuery ("select name, bewertung, location " +
                                    "from restaurants " +
                                    "     join locations on (locations.id = location_id) where locations.id = " + sort.gedID());

        }
        catch (SQLException e){
            System.out.print(e.toString());
        }

       restaurantTable.setModel(new RestaurantTableModel(rs));
       restaurantTable.updateUI();


        restaurantTable.repaint();
        restaurantTable.revalidate();

und als fehlermeldung erhalte ich:
18.06.2009 00:02:07 restaurantadministration.view.restaurantsJFrame initComponents
SCHWERWIEGEND: null
java.sql.SQLException: Operation not allowed after ResultSet closed

nur hab ich keine ahnung wo in meinem code ResultSet closed sein sollte?! verwende eine ähnliche abfrage um den jtable ein start des programms zu füllen.

wenn ich den code wie oben beschrieben bei einem anderen listener einfüge, funktionierts, nur eben halt nicht so wie ich (geschweige denn mein professore) sich das vorstelle
 

Ebenius

Top Contributor
Ich mutmaße: Du kannst ein bereits benutztes Statement nicht wiederverwenden. Das hat in jedem Fall nichts mit dem falschen Listener zu tun.

Lies Dich mal ein bisschen in JDBC ein; zum Beispiel hier: Sun Java™ Tutorial: JDBC.

Ebenius
 

kaka81

Mitglied
hm, wie könnte ich dieses problem denn sonst noch lösen? die anforderung lautet:
- möglichkeit, diese auflistung nach dem ort zu filtern...

aber komischerweise habe ich im gleichen frame einen button "aktualisieren" eingebaut, der mir die liste nach hinzufügen eines neuen restaurants aktualisiert und dies funktioniert auch. ist die komplett gleiche abfrage wie beim starten des programms.
nur beim "nach orte filtern" habe ich noch eine where bedingung angehängt, ansonsten ist sie gleich... ich verstehs nicht... ???:L

gäbe es noch andere lösungsansätze?
 

Ebenius

Top Contributor
ist die komplett gleiche abfrage wie beim starten des programms. nur beim "nach orte filtern" habe ich noch eine where bedingung angehängt... ich verstehs nicht...

gäbe es noch andere lösungsansätze?
An der WHERE-Clause liegt es nicht im eigentlichen SELECT-Statement liegt es auch nicht. Es liegt nur daran, dass Du die JDBC-Klassen nicht richtig verwendest. In welcher Weise Du das genau falsch machst kann ich nicht sagen, da dies weder aus der Fehlermeldung noch aus dem Quelltextausschnitt genau hervorgeht.

Wo wird denn stm erzeugt? Wurde das ggf. schonmal verwendet? Hast Du mal in das Tutorial geschaut, da gibt es ganz einfache Beispiele die alle funktionieren.

Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Warum soll ich shuffle nutzen, um bei Rückgabewert Collection eine Liste zurückzugeben? Java Basics - Anfänger-Themen 3
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
B Rückgabewert boolean Java Basics - Anfänger-Themen 8
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
H Array wird als Rückgabewert nicht akzeptiert? Java Basics - Anfänger-Themen 2
L Methoden Rückgabewert Verbergen / nicht mit ausgeben Java Basics - Anfänger-Themen 4
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
R Boolean Methode Rückgabewert if() Java Basics - Anfänger-Themen 1
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
F Pascalsches Dreieck mit Rückgabewert Java Basics - Anfänger-Themen 2
D Dezimal zu Dual mit Rückgabewert Java Basics - Anfänger-Themen 39
Curtis_MC Methoden Rückgabewert von BiPredicate Java Basics - Anfänger-Themen 6
B Array als Rückgabewert in der Methode Java Basics - Anfänger-Themen 1
T Rückgabewert Problem Java Basics - Anfänger-Themen 2
A Methoden Rückgabewert Java Basics - Anfänger-Themen 6
I Referenz auf Klasse als Rückgabewert Java Basics - Anfänger-Themen 7
H Variablen Void und der Rückgabewert Java Basics - Anfänger-Themen 6
P Rückgabewert bestimmen Java Basics - Anfänger-Themen 17
J Warum wird Array durch Methode ohne Rückgabewert verändert? Java Basics - Anfänger-Themen 5
Tarrew Generics: Erste gemeinse Oberklasse als Rückgabewert Java Basics - Anfänger-Themen 1
I Rückgabewert einer Methode in anderer Klasse verwenden Java Basics - Anfänger-Themen 2
D for-Schleife Rückgabewert Java Basics - Anfänger-Themen 6
M Rückgabewert bei Methoden Java Basics - Anfänger-Themen 6
C Rückgabewert von Kontruktoren Java Basics - Anfänger-Themen 15
S Methoden Bei Liste als Rückgabewert: IndexOutOfBoundsException Java Basics - Anfänger-Themen 1
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
O Was verursacht den Rückgabewert false bei der Methode ready() eines BufferedReaders Java Basics - Anfänger-Themen 9
K Methode ohne Rückgabewert in boolean Methode ändern Java Basics - Anfänger-Themen 6
S Methoden Rückgabewert einer Methode als Parameter an eine andere Methode übergeben, geht das? Java Basics - Anfänger-Themen 5
S Rückgabewert null in Methode mit Thread Java Basics - Anfänger-Themen 2
M Anstatt 1 int Rückgabewert, mehrere Rückgaben mit Arraylist Java Basics - Anfänger-Themen 8
N Klassen constructor Rückgabewert Java Basics - Anfänger-Themen 10
C Methoden Rückgabewert von statischer Methode ignorieren Java Basics - Anfänger-Themen 8
MiMa Methode mit Rückgabewert Java Basics - Anfänger-Themen 2
feardorcha Methodenaufruf Übergabe- und Rückgabewert Java Basics - Anfänger-Themen 5
T Variablen Rückgabewert aus einer Schleifen-Methode Java Basics - Anfänger-Themen 8
D Methode mit Rückgabewert Java Basics - Anfänger-Themen 5
K Rückgabewert einer Klassenmethode Java Basics - Anfänger-Themen 7
J Methoden mit und ohne Rückgabewert Java Basics - Anfänger-Themen 22
D Erste Schritte Als Rückgabewert Klasse Java Basics - Anfänger-Themen 5
D Rückgabewert Pixelgrabber Java Basics - Anfänger-Themen 3
S ArrayList und Rückgabewert Java Basics - Anfänger-Themen 2
T Methode - Rückgabewert Schreibweise Java Basics - Anfänger-Themen 6
S Interface Rückgabewert Java Basics - Anfänger-Themen 3
F if Anweisung mit Rückgabewert? Java Basics - Anfänger-Themen 4
I Rückgabewert von JSlider Java Basics - Anfänger-Themen 15
B Methoden, Rückgabewert und Verknüpfungen Java Basics - Anfänger-Themen 15
V OOP Klassen Methoden Rückgabewert Java Basics - Anfänger-Themen 15
C Datentypen Rückgabewert von "new FileInputStream" Java Basics - Anfänger-Themen 4
S Datentypen String mit fester Länge (Rückgabewert einer Methode) Java Basics - Anfänger-Themen 2
O Rückgabewert mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 10
G List als Rückgabewert einer rekursiven Methode (Baum) Java Basics - Anfänger-Themen 3
T Array als Rückgabewert einer Methode Java Basics - Anfänger-Themen 3
A Rückgabewert ändert sich? Java Basics - Anfänger-Themen 9
C Thread mit Rückgabewert? Java Basics - Anfänger-Themen 4
S Rückgabewert einer Instanzvariable Java Basics - Anfänger-Themen 2
M Methoden mit Rückgabewert Java Basics - Anfänger-Themen 4
B Vector<Point> als Rückgabewert Java Basics - Anfänger-Themen 23
C Null als Rückgabewert Java Basics - Anfänger-Themen 7
O String[] Array als Rückgabewert Java Basics - Anfänger-Themen 7
G setValueAt Rückgabewert verarbeiten? Java Basics - Anfänger-Themen 12
P Methode mit 2 unterschiedlichem Rückgabewert Java Basics - Anfänger-Themen 10
L Prozess rückgabewert? Java Basics - Anfänger-Themen 5
I "Rückgabewert" von EditorFenster Java Basics - Anfänger-Themen 6
A ActionPerformed Methode ohne Rückgabewert Java Basics - Anfänger-Themen 12
G Rückgabewert bei JInternalFrame ? Java Basics - Anfänger-Themen 2
M Rückgabewert Java Basics - Anfänger-Themen 4
L Rückgabewert Java Basics - Anfänger-Themen 7
K Frage zu Rückgabewert List und ArrayList Java Basics - Anfänger-Themen 6
D Methode aufrufen funktioniert nicht ganz - Rückgabewert Bool Java Basics - Anfänger-Themen 12
M Rückgabewert einer Methode Java Basics - Anfänger-Themen 6
P Array als Rückgabewert Java Basics - Anfänger-Themen 4
halla Array an Methode übergeben / Array als Rückgabewert Java Basics - Anfänger-Themen 2
L Rückgabewert in Konstruktor? Java Basics - Anfänger-Themen 4
R Problem mit Rückgabewert Java Basics - Anfänger-Themen 5
M Null-Rückgabewert von Methoden = sauberes programmieren? Java Basics - Anfänger-Themen 3
D Rückgabewert einer Methode Java Basics - Anfänger-Themen 25
M JFileChooser Rückgabewert Java Basics - Anfänger-Themen 2
Niki_Tesla Rückgabewert Java Basics - Anfänger-Themen 2
A Hashtable als Rückgabewert Java Basics - Anfänger-Themen 3
A Methode mit Rückgabewert Java Basics - Anfänger-Themen 3
Rxiiz Objekt aus ComboBox entfernen Java Basics - Anfänger-Themen 4
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
T ComboBox getValue() zeigt null Java Basics - Anfänger-Themen 7
J Array an Combobox übergeben Java Basics - Anfänger-Themen 5
P JavaFX: Verständnisproblem bei ComboBox/ChoiceBox etc. Java Basics - Anfänger-Themen 9
Rubberduck Combobox-Werte in GUI anzeigen Java Basics - Anfänger-Themen 13
J Combobox füllen mit Wertausgabe von andere Klasse Java Basics - Anfänger-Themen 3
D Custom Buttons oder Custom Combobox Java Basics - Anfänger-Themen 30
G Verlassen einer ComboBox erkennen Java Basics - Anfänger-Themen 16
Mosquera Get String Array - ComboBox Java Basics - Anfänger-Themen 10
H Combobox abhängig von RadioButton Java Basics - Anfänger-Themen 4
M ComboBox bestimmte Elemente disablen/ausgrauen Java Basics - Anfänger-Themen 3
T Combobox Wert auslesen und damit weiterrechnen Java Basics - Anfänger-Themen 6
J ComboBox mittels neuer Methode befüllen Java Basics - Anfänger-Themen 3
J Interface Combobox Zustand speichern Java Basics - Anfänger-Themen 1
T Wenn Schaltjahr ist, soll Februar, einen Tag mehr haben, GUI mit combobox Java Basics - Anfänger-Themen 4
J Combobox Objekte Java Basics - Anfänger-Themen 10
kaoZ Input/Output Verzeichnis Inhalt in combobox ausgeben Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben