2015-05-06 2 views
2

Я хочу найти элемент, но я смущен тем, что переключатель и поле со списком ничего не показывают. Если вы хотите получить окно со списком шоу, необходимо выбрать радиокнопку. Я смутил код, который я должен ввести для переключателя. Вы можете мне помочь?получить поиск данных от radiobutton до 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) { 

    } 
} 

enter image description here

Авокадо ролл из базы данных enter image description here

категория и тип базы данных

enter image description here

теперь enter image description here

enter image description here

+0

Что-нибудь произойдет, если вы добавите 'e.printStackTrace()' в свой обработчик исключений? Плохая практика - ловить исключения и ничего не делать. – npinti

+0

netbeans написал «' throwable.printStackTrace() 'должен быть удален» ._. @npinti – enjeru

+0

Я думаю, что проблема заключается в кодировании для переключателя для установки blabla. Но я не знаю, что мне там писать. Вы можете мне помочь? это моя кнопка -> [link] (http: // stackoverflow.com/questions/30050836/if-else-function-using-radio-button-show-values-in-combo-box) @npinti – enjeru

ответ

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

Так что не заботьтесь об этой ошибке!

+0

Где я могу его поместить? Кстати, я просто посмотрел ваш профиль. Я был взволнован и занял 17-е место и устроился на работу. Я 19: ") – enjeru

+1

Я бы поместил его в начале, так что сначала после поиска вы установили элементы в своем ComboBox, а затем читаете остальную часть данных для своего приложения. Ха-ха-ха, да, мне уже 17 лет. my dreamjob как разработчик приложения! –

+0

AH! ЭТО РАБОТАЕТ! СПАСИБО ВАШЕГО СОСТОЯНИЯ :) Уай. Рад за вас, старший: p – enjeru

1

Я бы создал два события, один на радиообъекте «Пища», а другой на радиаторе «Напиток». Я полагаю, что у вас есть два радиобокса в одной группе.

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 «Food» в fooditems появляется в выпадающем списке, и если вы нажмете на radiobox «Drink» на drinkitems появляется в выпадающем списке.

enter image description hereenter image description here

+1

ОК. Он работает, но мой вопрос, когда мы вводим не выбранные. Вы можете мне помочь? Пожалуйста, < – enjeru

+0

Что вы хотите в ComboBox, если не выбрано радиооборудование? –

+0

Нет. Я имею в виду, когда я набираю «Авокадо-ролл» в поиске, данные о ролевом шоу авокадо и радиокнопке идут в пищу, а поле для соков отправляется на суши. Ты понял? >< – enjeru

1

Так вторая попытка, с этим кодом, он должен работать, он проверяет сначала menu_typ и приложение будет выбирать между «Food» и «пить». В конце приложение установит выбранный элемент в свой 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")); 

Надеюсь, я помог вам!

+0

Ах! Это работа, но поле со списком ничего не показывает. – enjeru

+0

Да, вы должны установить все значения в свой combobox! 'combo.addItem (« Чай »); combo.addItem («Сода»); combo.addItem ("Sashimi"); combo.addItem ("Sushi"); // Добавить все menu_cat следующим образом: –

+0

Итак, я добавляю его вручную? Как насчет того, что я хочу добавить еще одну категорию в базу данных? Итак, я должен добавить здесь тоже? hehe>< – enjeru

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

    } 

Этот код выполняет следующие действия:

  • Удалить все записи в ComboBox
  • Выполнить новый запрос
  • Сохраните все значения в массиве
  • Добавить все элементы в массив для вашего ComboBox
+1

Могу я спросить? Где я это кодирую? хе-хе. В переключателе с фокусным расстоянием? hehe – enjeru

+0

Я бы поместил этот код в ваше действие поиска, после того как пользователь нажал кнопку поиска. Я бы поставил его в конце кода, который вы опубликовали в своем вопросе! –

+0

ах. Это показывает категорию НО: (застрял в первой категории.Не изменяйте, к чему они должны идти. – enjeru

Смежные вопросы