Hej! Simpelt exempel: Simpelt, och effektivt! Precis vad jag letade efter.JComboBox och databaser
Jag bygger ett gränssnitt för inlägg i en databas. Ett av fälten innehåller relation till en annan tabell, så här:
Tabell1:
ID | Namn | Land
--------------------------
1 | Johannes | 1
2 | Anders | 3
Tabell_länder:
ID | Land
-----------------
1 | Sverige
2 | Norge
3 | Danmark
Nu har jag ett formulär i ett Javaprogram där jag har en JTextField för namnet och en JComboBox med alla länderna i Tabell_länder. Dvs comboboxen innehåller namnet på länderna. Men när jag vill uppdatera databasen skall ju ID-numret läggas in i Tabell1 och inte namnet på landet.
Vad är lättaste lösningen på detta?
Det vore ju smidigt om man kunde använda HashMap eller något och låta värdena synas i comboboxen men samtidigt kunna få ut nyckeln. Jag är ju van att göra liknande saker i HTML och då är ju <select>-taggen perfekt för detta.
Tacksam för svar!
/JohannesSv: JComboBox och databaser
import java.awt.event.*;
import javax.swing.*;
public class ComboBoxObject extends JFrame implements ActionListener
{
private JComboBox comboBox;
public ComboBoxObject()
{
comboBox = new JComboBox();
comboBox.addActionListener( this );
//
comboBox.addItem( new Item(1, "car" ) );
comboBox.addItem( new Item(2, "plane" ) );
comboBox.addItem( new Item(3, "train" ) );
comboBox.addItem( new Item(4, "boat" ) );
//
getContentPane().add( comboBox );
}//end Constructor
public void actionPerformed(ActionEvent e)
{
Item item = (Item)comboBox.getSelectedItem();
System.out.println( item.getId() + " : " + item.getDescription() );
}
class Item
{
private int id;
private String description;
public Item(int id, String description)
{
this.id = id;
this.description = description;
}//end Constructor
public int getId()
{
return id;
}//end method getId
public String getDescription()
{
return description;
}//end method GetDescription
public String toString()
{
return description;
}//end method toString
}//end class Item
public static void main(String[] args)
{
JFrame frame = new ComboBoxObject();
frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
frame.pack();
frame.setVisible( true );
}//end method main
}//end class ComboBoxObject
Sv: JComboBox och databaser
Det gäller ju att komma in i "tänket".
Tack!