2016-07-03 8 views
0

Greating from Belgium.Как заполнить JCombobox в зависимости от другого JCombobox В Java eclipse

Я сейчас 3 дня, пытаясь заполнить между значениями с помощью combobox. Я использую Sqlite и используя 4 таблицы для сохранения данных в таблице «Рецепты»

Так что, если я выбираю позволяет сказать «мясо» из cmbCategory, из таблицы «sbCategory», другой выпадающий «cmbDescription» из таблицы «Продукты» должен показывать только то, что относится к категории «мясо»

Показанный код Я могу получать значения в полях. и это я вставил внизу "fillCombo();"

Я действительно в отчаянии. 3 дня, чтобы позволить этой работе, пока я не нашел этот сайт. Надеюсь, вы, ребята, можете мне помочь. Я восхищаюсь знаниями, которые у вас есть. Я шеф-повар, который пытается написать собственное приложение. Спасибо заранее. Я не могу платить вам, ребята, но если вы находитесь в Бельгии я могу предложить кофе ..

// общественная пустота fillCombo() {

try { 
     String sql= "Select * from sbCategorie"; 
     String sql1= "Select * from Products"; 
     String sql2= "Select * from UnitsRecipe"; 
     String sql3= "Select * from Classification"; 
     PreparedStatement pst=connection.prepareStatement(sql); 
     PreparedStatement pst1=connection.prepareStatement(sql1); 
     PreparedStatement pst2=connection.prepareStatement(sql2); 
     PreparedStatement pst3=connection.prepareStatement(sql3); 
     ResultSet rs=pst.executeQuery(); 
     ResultSet rs1=pst1.executeQuery(); 
     ResultSet rs2=pst2.executeQuery(); 
     ResultSet rs3=pst3.executeQuery(); 
     while(rs.next()){ 
      BoxCategory.addItem(rs.getString("Categorie")); 
      //BoxDescription.addItem(rs.getString("Description")); 
     } 
     while(rs1.next()){ 
      BoxDescription.addItem(rs1.getString("Description")); 
     } 
     while(rs2.next()){ 
      BoxUnit 
      .addItem(rs2.getString("Unit")); 
     } 
     while(rs3.next()){ 
      BoxClassification 
      .addItem(rs3.getString("Classification")); 
     } 

    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

это, как показано

BoxCategory. addItemListener (новый ItemListener() {

 public void itemStateChanged(ItemEvent arg0) { 
      // 
      // 
      String s=BoxCategory.getSelectedItem().toString(); 
      String sql="Select * from Products where Category='"+s+"'"; 
      // 
     try { 
      PreparedStatement pst=connection.prepareStatement(sql); 

      ResultSet rs=pst.executeQuery(); 
     while (rs.next()){ 
      //BoxDescription.removeAllItems(); 
      BoxCategory.setSelectedItem(rs.getString("Description")); 

      } 
      } catch (SQLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

ответ

-1

Не могли бы вы заменить следующий фрагмент кода:

BoxCategory.addItemListener(new ItemListener() { 

    public void itemStateChanged(ItemEvent arg0) { 
     // 
     // 
     String s = BoxCategory.getSelectedItem().toString(); 
     String sql = "Select * from Products where Category='" + s + "'"; 
     // 
     try { 
      PreparedStatement pst = connection.prepareStatement(sql); 

      ResultSet rs = pst.executeQuery(); 
      while (rs.next()) { 
       // BoxDescription.removeAllItems(); 
       BoxCategory.setSelectedItem(rs.getString("Description")); 

      } 
     } catch (SQLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
}); 

следующим фрагментом:

BoxCategory.addItemListener(new ItemListener() { 
     public void itemStateChanged(ItemEvent arg0) { 
      String s = BoxCategory.getSelectedItem().toString(); 
      String sql = "Select * from Products where Category='" + s + "'"; 
      try { 
       PreparedStatement pst = connection.prepareStatement(sql); 
       ResultSet rs = pst.executeQuery(); 
       BoxDescription.removeAllItems(); 
       while (rs.next()) { 
        BoxDescription.addItem(rs.getString("Description")); 
       } 
      } catch (SQLException e) { 
       e.printStackTrace(); 
      } 
     } 
}); 

и увидеть результаты?

+0

@Erol Не могли бы вы рассказать мне, решена ли ваша проблема или нет? –

+0

Омг, да. Мне просто нужно было удалить все по правильной линии. Большое спасибо. Решение было прямо передо мной. Большое спасибо. Теперь я могу двигаться к другим рамам. – Erol

+0

Привет @Erol вы можете принять ответ, нажав на галочку (✔) слева от ответа, чтобы читатели могли узнать, как проблема была решена? –