Java 从radiobutton到combobox获取数据搜索

Java 从radiobutton到combobox获取数据搜索,java,swing,combobox,radio-button,Java,Swing,Combobox,Radio Button,我想搜索一个项目,但单选按钮和组合框什么也不显示,这让我很困扰。若你们想得到显示组合框,单选按钮必须被选中。我搞不清楚我必须为单选按钮键入什么代码。你能帮我吗 private void txtSearchKeyReleased(java.awt.event.KeyEvent evt) { // TODO add your handling code here: try { String m

我想搜索一个项目,但单选按钮和组合框什么也不显示,这让我很困扰。若你们想得到显示组合框,单选按钮必须被选中。我搞不清楚我必须为单选按钮键入什么代码。你能帮我吗

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) {

    }
}

数据库中的鳄梨卷

类别和类型数据库

现在,


我将创建两个事件,一个在radiobox“食物”上,另一个在radiobox“饮料”上。我想,你在一个按钮组中有两个收音机

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");

} 
private void radio\u foodfocusged(java.awt.event.FocusEvent evt){
int itemCount=combo.getItemCount();
对于(int i=0;i
因此,现在的结果是,当您单击radiobox“Food”时,fooditems显示在组合框中,如果您单击radiobox“Drink”,drinkitems显示在组合框中


因此,第二次尝试,使用此代码它应该可以工作,它首先检查菜单类型,应用程序将在“食物”和“饮料”之间做出决定。最后,应用程序将组合框中的选定项设置为菜单

    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"));

我希望我帮助过你

要填充组合框,首先需要执行一个新的查询,此查询会返回所有不同的菜单。首先,您需要删除组合框中的现有条目

    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++;

    }
for(int i=0;i
此代码执行以下步骤:

  • 删除组合框中的所有条目
  • 执行新查询
  • 将所有值保存在数组中
  • 将数组中的所有项添加到组合框中

    • 你必须这样写:

      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);
      }
      
      试试看{
      对于(int i=0;i


      所以不要在意这个错误

      如果在异常处理程序中添加
      e.printStackTrace()
      ,是否会发生任何情况?捕捉异常而不采取任何措施是不好的做法。netbeans编写了“
      throwable.printStackTrace()
      应该被删除”@我认为问题在于编码单选按钮来设置blabla。但我不知道我必须在那里写些什么。你能帮助我吗?这是我的单选按钮->@npintthe
      e.printStackTrace()
      将打印您必须控制台的任何异常。这是为了调试目的,不会成为最终产品的一部分,因此在这种情况下,您可以忽略netbeans显示的警告。但是,您最终需要加入一个消息框或类似的东西。如果您打印出任何例外情况,请将其包含在您的答案中。但是没有任何事情发生。这是工作,但我的问题,当我们键入未选中。你能帮助我吗?请>如果没有选择radiobox,您希望在组合框中显示什么?没有。我在这里的意思是,当我在搜索中键入鳄梨卷时,有关鳄梨卷显示和单选按钮的数据转到食物,组合框转到寿司。你明白了吗?>是的,我尝试了一个新的解决方案!在我的数据库里。等等,我会上传的是的,你必须把所有的值都设置到你的组合框中<代码>组合添加项(“Tea”);复合添加剂(“苏打”);生鱼片;combo.addItem(“寿司”);//像这样添加所有菜单\u cat
      那么,我是手动添加的吗?我想在数据库中添加更多类别如何?那么,我也必须在这里加上?呵呵,那怎么办?啊<代码>组合添加项(“Tea”)我是怎么说的?是的,最后。但首先你必须得到所有不同的菜单。我正试图找出它的算法。所以我会发布解决方案!目标是当您在数据库中添加一个新的菜单时,该菜单将自动显示在组合框中。您使用的是什么数据库?我可以问一下吗?我把代码放在哪里了?呵呵。单选按钮焦点?heheI会在用户单击搜索按钮后将此代码添加到您的搜索操作中。我会把它放在你在问题中发布的代码末尾!啊。这是显示类别,但是:(卡在第一个类别中。不要改变他们必须做的事情。看上面。一半的数据没有显示任何内容,并且会出现错误。)你能在组合框中发布数据的屏幕截图吗?我必须把它放在哪里?顺便说一句,我刚看了你的个人资料。我很兴奋你才17岁就有了工作。我19岁:“)啊!它起作用了!非常感谢:)哇。为你高兴,大四:p