Hallo, ich habe 2 Tabelle in MySql angelegt.
1. Tabelle ist Fahrzeug mit FahrzeugNr, TypNr, ......
2. Tabelle ist Typ mit TypNr und Typ
Die Inhalte von Fahrzeug habe ich in einer JTable eingefügt.
Nach dem Doppelklick auf einer Spalte werden die Daten in einem JDialog übernommen.
FahrzeugTyp wird in einem ComboBox übernommen. Diese comboBox habe ich mit Werten aus der Tabelle Typ in einem <ListItem> gefüllt.
ValueMember ist TypNr und DisplayMember ist Typ
ich muss bei der Auswahl der JComboBox ValueMember übernehmen und in der Tabelle Fahrzeug speichern. Das kriege ich nicht hin . Bitte um Hilfe
Hier ist der Code
Jetzt muss ich den ausgewählten wert von Cbo in der tabelle ändern
Typ ist sichtbar aber ich muss eine int-Wert nämlich TypNr in der Tabelle Fahrzeug speichern.
Danke für Ihre Hilfe im Voraus.
1. Tabelle ist Fahrzeug mit FahrzeugNr, TypNr, ......
2. Tabelle ist Typ mit TypNr und Typ
Die Inhalte von Fahrzeug habe ich in einer JTable eingefügt.
Nach dem Doppelklick auf einer Spalte werden die Daten in einem JDialog übernommen.
FahrzeugTyp wird in einem ComboBox übernommen. Diese comboBox habe ich mit Werten aus der Tabelle Typ in einem <ListItem> gefüllt.
ValueMember ist TypNr und DisplayMember ist Typ
ich muss bei der Auswahl der JComboBox ValueMember übernehmen und in der Tabelle Fahrzeug speichern. Das kriege ich nicht hin . Bitte um Hilfe
Hier ist der Code
Java:
//deklaration
private JComboBox<ListItem> cboTyp;
private DefaultComboBoxModel<ListItem> cboTypModel
//initialisierung
cboTypModel = new DefaultComboBoxModel<>();
cboTyp = new JComboBox<>(cboTypModel);
cboTyp.setBackground(Color.white);
cboTyp.setBounds(150, 10, 100, 25);
cboTyp.addItemListener(this);
this.add(cboTyp);
// Werte aus der Tabelle Fahrzeug lesen
private void readEntry(int Key)
{
String SQL = "SELECT f.FahrzeugNr,f.TypNr, t.Typ, f.Beschreibung, f.Kennzeichen, f.Farbe, f.Ausstattung, f.KMStand, f.Preis FROM fahrzeug f, typ t";
SQL += " WHERE f.fahrzeugNr = " + String.valueOf(Key) ;
SQL += " AND f.TypNr = t.TypNr ";
ResultSet rSet = DBConnection.executeQuery(SQL);
if (rSet == null) return;
try
{
if (rSet.next())
{
tfBeschreibung.setText(rSet.getString("f.Beschreibung"));
tfKennzeichen.setText(rSet.getString("f.Kennzeichen"));
tfFarbe.setText(rSet.getString("f.Farbe"));
tfAusstattung.setText(rSet.getString("f.Ausstattung"));
tfKmStand.setText(rSet.getString("f.KMStand"));
tfPreis.setText(rSet.getString("f.Preis"));
int t = rSet.getInt("f.TypNr");
selectEntry(rSet.getInt("f.TypNr"));
}
rSet.close();
}
catch (Exception ex) {}
hasChanged = false;
}
/*
* Die Methode vergleicht TypNr aus der mit jedem Element der ListItem
* Wenn der das Element aus listItem mit typNr übereinstimmt, dann selektiert er den Wert in ComboBox
*/
private void selectEntry(int typNr)
{
ListItem li ;
for(int i=0; i< cboTypModel.getSize(); i++)
{
li = cboTypModel.getElementAt(i);
if((int)li.getValueMember() == typNr)
{
cboTyp.setSelectedIndex(i);
break;
}
}
// comboBox füllen
private void populateTyp()
{
String SQL = "SELECT typNr, typ FROM typ ";
try
{
ResultSet rSet = DBConnection.executeQuery(SQL);
while(rSet.next())
{
cboTypModel.addElement(new ListItem(rSet.getInt("typNr"), rSet.getString("typ")));
}
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, ex);
}
}
Typ ist sichtbar aber ich muss eine int-Wert nämlich TypNr in der Tabelle Fahrzeug speichern.
Java:
private boolean updateEntry()
{
String SQL = "UPDATE fahrzeug f ";
SQL += " SET f.TypNr = " + (cboTypModel.getSelectedItem()) + ", ";
SQL += " f.Beschreibung = " + Globals.quote(tfBeschreibung.getText()) + ", ";
SQL += " f.Kennzeichen = " + Globals.quote(tfKennzeichen.getText()) + ", ";
SQL += " f.Farbe = " + Globals.quote(tfFarbe.getText()) + ", ";
SQL += " f.Ausstattung = " + Globals.quote(tfAusstattung.getText()) + ", ";
SQL += " f.KMStand = " + Globals.quote(tfKmStand.getText()) + ", ";
SQL += " f.Preis = " + Globals.quote(tfPreis.getText()) ;
SQL += " WHERE f.FahrzeugNr = " + String.valueOf(this.mKey) ;
return DBConnection.executeNonQuery(SQL) > 0;
}
private boolean insertEntry()
{
this.mKey = Globals.getNextKey();
String SQL = "INSERT INTO fahrzeug f ";
SQL += "(f.FahrzeugNr, f.TypNr , f.Beschreibung, f.Kennzeichen, f.Farbe, f.Ausstattung, f.KMStand, f.Preis ) ";
SQL += " VALUES ( ";
SQL += String.valueOf(this.mKey) + ", ";
SQL += (cboTypModel.getSelectedItem()) + ", ";
// SQL += Globals.quote(tfModell.getText()) + ", ";
// SQL += Globals.quote(tfZustand.getText()) + ", ";
SQL += Globals.quote(tfBeschreibung.getText()) + ", ";
SQL += Globals.quote(tfKennzeichen.getText()) + ", ";
SQL += Globals.quote(tfFarbe.getText()) + ", ";
SQL += Globals.quote(tfAusstattung.getText()) + ", ";
SQL += Globals.quote(tfKmStand.getText()) + ", ";
SQL += Globals.quote(tfPreis.getText()) + " )";
// SQL += (tfPreis.getText()) + ", ";
// SQL += " )";
return DBConnection.executeNonQuery(SQL) > 0;
}
Danke für Ihre Hilfe im Voraus.
Zuletzt bearbeitet von einem Moderator: