Sua pergunta está um pouco incompleta, mas meu palpite é que seu JComboBox é preenchido com String. Nesse caso, provavelmente seria melhor para você preencher o JComboBox (ou melhor, seu modelo) com objetos de uma classe personalizada que combina seu ProductID com um ProductName. Para que a caixa de combinação exiba o nome, você precisará fornecer à sua classe um método toString() que retorne o nome ou fornecer à sua caixa de combinação um renderizador de célula que mostre o nome.
Editar
Por exemplo, crie uma classe, MyComboItem, dê dois campos String que você preenche do seu banco de dados, dê um
toString()
método que mostra o nome do produto, e preencha seu JComboBox com itens deste tipo:class MyComboItem {
private String productId;
private String productName;
public MyComboItem(String productId, String productName) {
this.productId = productId;
this.productName = productName;
}
public String getProductId() {
return productId;
}
public String getProductName() {
return productName;
}
@Override
public String toString() {
return productName;
}
}
Editar 2
Que pode ser usado assim:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
public class ComboItemTest {
public static void main(String[] args) {
DefaultComboBoxModel<MyComboItem> comboModel =
new DefaultComboBoxModel<MyComboItem>();
// note that here you would fill the model with data from your database ***
comboModel.addElement(new MyComboItem("x1234A", "Product 1"));
comboModel.addElement(new MyComboItem("x1235A", "Product 2"));
comboModel.addElement(new MyComboItem("x1236A", "Product 3"));
comboModel.addElement(new MyComboItem("x1237A", "Product 4"));
comboModel.addElement(new MyComboItem("x1238A", "Product 5"));
comboModel.addElement(new MyComboItem("x1239A", "Product 6"));
final JComboBox<MyComboItem> combobox = new JComboBox<MyComboItem>(comboModel);
combobox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
MyComboItem item = (MyComboItem) combobox.getSelectedItem();
if (item != null) {
System.out.printf("You've selected Product Name: %s, Product ID: %s%n",
item.getProductName(), item.getProductId());
}
}
});
JOptionPane.showMessageDialog(null, new JScrollPane(combobox));
}
}
Editar 3
No seu caso, você preencheria seu modelo com informações do ResultSet. Talvez algo como:
ResultSet result = statement.executeQuery();
while(result.next()){
String productName = result.getString(1);
String productId = result.getString(2); // ???? not sure if this is valid
MyComboItem comboItem = new MyComboItem(productId, productName);
comboModel.addElement(comboItem);
}