获取从单选按钮到组合框的数据搜索
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 你能把组合框中的数据截图发上来吗?以上是关于获取从单选按钮到组合框的数据搜索的主要内容,如果未能解决你的问题,请参考以下文章