Java 通过在组合框中选择项从MySql表格中选择数据
我有一个JCombobox,它从MySql表的一列中获取数据Java 通过在组合框中选择项从MySql表格中选择数据,java,mysql,combobox,Java,Mysql,Combobox,我有一个JCombobox,它从MySql表的一列中获取数据 public void FillCombo1(){ try { String sql = "SELECT `Expense Code` FROM `database`.`expense_code_master`"; PreparedStatement pst = (PreparedStatement)conn.prepareStatement(sql); rs = pst.executeQuery()
public void FillCombo1(){
try {
String sql = "SELECT `Expense Code` FROM `database`.`expense_code_master`";
PreparedStatement pst = (PreparedStatement)conn.prepareStatement(sql);
rs = pst.executeQuery();
while (rs.next()) {
String name = rs.getString("Expense Code");
comboBox.addItem(name);
}
}catch (Exception ex) {
System.out.println("Error: "+ex);
}
}
现在我想从同一个表中获取一个值,该值与我在组合框中选择的值相关。我该怎么做
Table schema:
Expense Code (primary key) | Account No (int)
E120 | 12222
因此,我想获取值(账号)并将其与ActionListener一起放入JLabel中,您可以利用
ItemListener
来实现这一点
JLabel myLabel = ... // Example JLabel from other part of program
...
class ItemChangeListener implements ItemListener{
@Override
public void itemStateChanged(ItemEvent event){ // Fired on selection
if(event.getStateChange() == ItemEvent.SELECTED){ // Check for selection
Object item = event.getItem(); // Here is selected item
String expenseCode = item.toString(); // Get String
String result = ...; // Use query here -
// same way as with your other query
myLabel.setText(result); // Update JLabel with found String
}
}
}
确保将ItemChangeListener
添加到JComboBox
comboBox.addItemListener(new ItemChangeListener());
SQL
查询应该是这样的
// expenseCode would be the String you got in the itemStateChanged method
String sql2 = "SELECT `Account No` FROM `database`.`expense_code_master` " +
"WHERE `Expense Code` == `" + expenseCode + "`";
你还没问过一个问题,你在哪一部分有问题?您是否不知道如何编写查询,不知道如何将组件添加到GUI等。?您需要提供更多详细信息,可能需要显示JComboBox和MySQL表访问的代码,并询问一个具体问题,说明您遇到了什么困难。我不知道如何编写查询。这些值之间有什么关系?您需要提供表格布局(列名、类型等)。列“费用代码”是主键,我想从列“账号”中获取值。因此,当我选择一个费用代码时,帐户号应该出现。你需要将信息添加到你的问题中。列的数据类型是什么?您需要从哪个列中获取数据?