获取从单选按钮到组合框的数据搜索
get data searching from radiobutton to combobox
我想搜索一个项目,但我为单选按钮和组合框什么都不显示而苦恼。如果您想显示组合框,请务必选择单选按钮。我混淆了我必须为单选按钮输入什么代码。你能帮帮我吗?
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) {
}
}
来自数据库的鳄梨卷
类别和类型数据库
现在,
我会创建两个事件,一个在单选框 "Food" 上,另一个在单选框 "Drink" 上。我想,您在一个按钮组中有两个单选框。
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");
}
现在的结果是,当您单击单选框 "Food" 时,食物项会出现在组合框中,如果您单击单选框 "Drink",则饮料项会出现在组合框中。
所以第二次尝试,使用这段代码应该可以工作,它首先检查 menu_typ,然后应用程序将在 "Food" 和 "Drink" 之间做出决定。最后,应用程序将 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"));
希望对你有所帮助!
为了填充您的 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
你必须这样写:
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);
}
所以不要在意这个错误!
我想搜索一个项目,但我为单选按钮和组合框什么都不显示而苦恼。如果您想显示组合框,请务必选择单选按钮。我混淆了我必须为单选按钮输入什么代码。你能帮帮我吗?
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) {
}
}
来自数据库的鳄梨卷
类别和类型数据库
现在,
我会创建两个事件,一个在单选框 "Food" 上,另一个在单选框 "Drink" 上。我想,您在一个按钮组中有两个单选框。
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");
}
现在的结果是,当您单击单选框 "Food" 时,食物项会出现在组合框中,如果您单击单选框 "Drink",则饮料项会出现在组合框中。
所以第二次尝试,使用这段代码应该可以工作,它首先检查 menu_typ,然后应用程序将在 "Food" 和 "Drink" 之间做出决定。最后,应用程序将 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"));
希望对你有所帮助!
为了填充您的 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
你必须这样写:
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);
}
所以不要在意这个错误!