Что вам нужно, чтобы быть в состоянии вынести описание/name о поставщике в combobox, но когда вы выбираете описание/имя в combobox, вы хотите получить объект Vendor.
JCombobox поставляется с этим естественным путем. Вы можете добавлять объекты, отличные от String, в качестве элементов в JCombobox, JCombobox будет использовать метод toString() объекта для его отображения, а JCombobox.getSeletecedItem() все равно предоставит вам полный объект.
Итак, что вы можете сделать: 1) Определите класс поставщика (вы можете сделать то же самое для своего кусочного класса). 2) Создайте объекты Vendor на основе данных, загруженных из базы данных. 3) Переопределите метод toString(). от поставщика к тексту, который вы хотите показать в JComboBox 4) добавить объекты поставщика в JComboBox 5) Делайте все, что нужно делать с выбранным Vendor
Пример:
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Vendor {
String name;
int ID;
@Override
public String toString() {
return name;
}
public Vendor(String name, int ID) {
this.name = name;
this.ID = ID;
}
public static void main(String[] args) {
Vendor[] vendors = {new Vendor("Apple", 1)
, new Vendor("Microsoft", 2)
, new Vendor("Google", 3)};
final JComboBox comboBox = new JComboBox(vendors);
JFrame jFrame = new JFrame();
jFrame.add(comboBox);
jFrame.setVisible(true);
jFrame.pack();
comboBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Vendor selectedVendor = (Vendor) comboBox.getSelectedItem();
System.out.println(selectedVendor.name + ", " + selectedVendor.ID);
// do whatever here you need to do with the ID of vendor
}
});
}
}
что именно ваша проблема ? что вы ожидали получить и что вы на самом деле получаете? – Rhayene