我想搜索一个项目,但是我很困惑,单选按钮和组合框没有显示任何内容。如果你想获得节目组合框,请选择单选按钮。我混淆了必须为单选按钮键入的代码。你能救我吗?
private void txtSearchKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
try {
String menu_name = txtSearch.getText();
Statement stmt;
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from menu WHERE menu_name like '%" + menu_name + "%' ");
if (rs.next()) {
txtMID.setText("" + rs.getString("menu_id"));
cmbMCat.setSelectedItem("" + rs.getString("menu_cat")); //combo box
txtMName.setText("" + rs.getString("menu_name"));
txtMPrice.setText("" + rs.getString("menu_price"));
//DefaultTableModel model = (DefaultTableModel) tblMenu.getModel();
//model.addRow(new Object[]{txtMID.getText(), type, cmbMCat.getSelectedItem(), txtMName.getText(), txtMPrice.getText()});
}
}
catch (SQLException | HeadlessException e) {
}
}
来自数据库的鳄梨卷
类别和类型数据库
现在,
答案 0 :(得分:2)
你必须这样写:
try{
for (int i = 0; i < itemCount; i++) {
combo.removeItemAt(0);
}
rs = stmt.executeQuery("select * from menu_cat");
int i = 0;
String[] categories = new String[99];
while(rs.next()){
categories[i] = rs.getString("menu_cat");
i++;
}
i = 0;
while(!categories[i].equals("")){
combo.addItem(categories[i]);
i++;
}
}catch (Exception e){
System.out.println("Unimportant error: " + e);
}
所以不要关心这个错误!
答案 1 :(得分:1)
我会创建两个事件,一个在radiobox“Food”上,另一个在radiobox“Drink”上。我想,你在一个buttongroup中有两个radioboxes。
private void radio_foodFocusGained(java.awt.event.FocusEvent evt) {
int itemCount = combo.getItemCount();
for (int i = 0; i < itemCount; i++) {
combo.removeItemAt(0);
}
combo.addItem("Food Item 1");
combo.addItem("Food Item 2");
}
private void radio_drinkFocusGained(java.awt.event.FocusEvent evt) {
int itemCount = combo.getItemCount();
for (int i = 0; i < itemCount; i++) {
combo.removeItemAt(0);
}
combo.addItem("Drink Item 1");
combo.addItem("Drink Item 2");
}
所以现在结果就是当你点击radiobox“食物”时,食物项目出现在组合框中,如果你点击radiobox“Drink”,那么这些饮品就会出现在组合框中。
答案 2 :(得分:1)
所以第二次尝试,使用此代码它应该工作,它首先检查menu_typ并且应用程序将决定&#34; Food&#34;和&#34;喝&#34;。最后,应用程序将ComboBox中的选定项目设置为menu_cat。
if(rs.getString("menu_type").equals("Food")){
radio_food.setSelected(true);
radio_drink.setSelected(false);
}else if(rs.getString("menu_type").equals("Drink")){
radio_drink.setSelected(true);
radio_food.setSelected(false);
}else{
System.out.println("No valid menu type");
}
combo.setSelectedItem(rs.getString("menu_cat"));
我希望我能帮到你!
答案 3 :(得分:1)
为了填充你的ComboBox,你需要先执行一个新的查询,这个查询会为你提供所有不同的menu_cat。首先,您需要删除ComboBox中的现有条目。
for (int i = 0; i < itemCount; i++) {
combo.removeItemAt(0);
}
rs = stmt.executeQuery("select * from menu_cat");
int i = 0;
String[] categories = new String[99];
while(rs.next()){
categories[i] = rs.getString("menu_cat");
i++;
}
i = 0;
while(!categories[i].equals("")){
combo.addItem(categories[i]);
i++;
}
此代码执行以下步骤: