获取从单选按钮到组合框的数据搜索

Posted

技术标签:

【中文标题】获取从单选按钮到组合框的数据搜索【英文标题】:get data searching from radiobutton to combobox 【发布时间】:2015-07-16 18:57:00 【问题描述】:

我想搜索一个项目,但我对单选按钮和组合框什么都不显示感到困扰。如果您想显示组合框,请务必选择单选按钮。我混淆了我必须为单选按钮输入什么代码。你能帮帮我吗?

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) 

    

来自数据库的鳄梨卷

类别和类型数据库

现在,

【问题讨论】:

如果在异常处理程序中添加e.printStackTrace() 会发生什么吗?捕获异常而不做任何处理是不好的做法。 netbeans 写道“throwable.printStackTrace() 应该被删除”._。 @npinti 我认为问题在于对单选按钮进行编码以设置 blabla。但我不知道我必须在那里写什么。你能帮助我吗?这是我的单选按钮 -> link @npinti e.printStackTrace() 将打印您必须控制台的任何异常。这是出于调试目的,不会成为最终产品的一部分,因此对于这种情况,您可以忽略 netbeans 显示的警告。但是,您最终需要输入一个消息框或类似的东西。如果您打印出任何例外情况,请将它们包含在您的答案中。 已经。但是什么也没发生@npinti 【参考方案1】:

你必须这样写:

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

所以不要在意这个错误!

【讨论】:

我必须把它放在哪里?顺便说一句,我刚刚看了你的个人资料。我在 17 岁的时候很兴奋并且有工作。我 19 岁:") 啊!它工作正常!非常感谢:)哇。为你高兴,前辈:p【参考方案2】:

我会创建两个事件,一个在单选框“食物”上,另一个在单选框“饮料”上。我想,你在一个按钮组中有两个单选框。

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

 

所以现在的结果是,当您单击单选框“食物”时,食物项会出现在组合框中,如果您单击单选框“饮料”,则饮品会出现在组合框中。

【讨论】:

好的。它有效,但我的问题是,当我们键入时未选中。你能帮助我吗?请> 如果没有选择单选框,你想在 ComboBox 中做什么? 没有。我在这里的意思是当我在搜索中输入鳄梨卷时,关于鳄梨卷显示和单选按钮的数据转到食物,组合框转到寿司。你明白了吗? > 是的,我尝试了一个新的解决方案! 在我的数据库中。等我上传【参考方案3】:

所以第二次尝试,这段代码应该可以工作,它首先检查 menu_typ 并且应用程序将在“食物”和“饮料”之间做出决定。最后,应用程序将 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"));

希望对你有所帮助!

【讨论】:

是的,您必须为您的组合框设置所有值! combo.addItem("Tea"); combo.addItem("Soda"); combo.addItem("Sashimi"); combo.addItem("Sushi"); // Add all menu_cat like this 那么,我手动添加?我想在数据库中添加更多类别怎么样?所以,我也必须在这里添加?呵呵 > 那么,怎么做?啊。 combo.addItem("Tea"); 怎么说? 是的,最后。但首先你必须得到所有不同的menu_cat。我正在尝试找出它的算法。所以我会发布它的解决方案!目标是当您在数据库中添加新的 menu_cat 时,此 menu_cat 会自动出现在 ComboBox 中。 你用的是什么数据库?【参考方案4】:

要填充您的 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++;

    

此代码执行以下步骤:

删除 ComboBox 中的所有条目 执行新查询 将所有值保存在一个数组中 将数组中的所有项目添加到您的 ComboBox

【讨论】:

我可以问一下吗?我把这个编码放在哪里?呵呵。在单选按钮中获得焦点?呵呵 在用户单击搜索按钮后,我会将此代码放入您的搜索操作中。我会把它放在你在问题中发布的代码的末尾! 啊。它显示了类别但是:(卡在第一类。不要改变他们必须去的地方。 看上面。一半的数据没有显示任何内容并出现错误._.)a 你能把组合框中的数据截图发上来吗?

以上是关于获取从单选按钮到组合框的数据搜索的主要内容,如果未能解决你的问题,请参考以下文章

更改单选按钮选中状态时如何从单选按钮组中的单选按钮获取文本

从单选按钮获取文本[重复]

如何通过从 mySQL 获取值从单选按钮获取值 [重复]

Yii 使用 Jquery 从单选按钮列表中获取选定的值

如何从单选按钮获取值到swift 5中的变量

php 从单选按钮字段获取Acf Conditional H1