Настроить соединение jComboBox с JList

223
27 апреля 2018, 15:30

На форме у меня расположено два элемента jList и ComboBox которые получают информацию из бд SQLite. При запуске программы я получаю пустой jList, хотя в ComboBox выбрано значение первой таблицы из бд, но при переключении между таблицами программа дополняет jListэлементами из выбранной таблицы. А нужно что бы программа меняла содержание jList в соответствии c таблицей выбранной из jComboBox.

     public Connection c=null;
    public DefaultComboBoxModel dcb = new DefaultComboBoxModel();
    public DefaultListModel dlm = new DefaultListModel();


   public void LoadList(){   
   // Запись из бд SQLite в Combobox
    try{
    String qry = "Select name from sqlite_master where type = 'table' ;";
    PreparedStatement pst = c.prepareStatement(qry);
    ResultSet rs = pst.executeQuery();
    while (rs.next()){
        dcb.addElement(rs.getString("name")) ;
    }
    jComboBox1.setModel(dcb);
    } catch(Exception e){
    System.out.println(e);
    }

 // Выбор элемента из Combobox
  jComboBox1.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ie) {
          String sa = (String)jComboBox1.getSelectedItem();
   //Запись в jList          
          try{
    String qry = "Select * from '"+sa+"' ;";
    PreparedStatement pst = c.prepareStatement(qry);
    ResultSet rs = pst.executeQuery();
    while(rs.next()){
    dlm.addElement(rs.getString("word"));
    }
    jList1.setModel(dlm);
    pst.close();
    rs.close();
}catch(Exception e){
    System.out.println(e);
}

  });
  }
Answer 1

Дык перенесите просто DefaultListModel dlm = new DefaultListModel() перед вызовом while(rs.next()) в jComboBox1.addActionListener . Т.е. создавайте его перед заполеннием и проталкиванием в jList1

Или вызывайте dlm.clear() перед вызовом while(rs.next()) в jComboBox1.addActionListener

READ ALSO
Как программно пройтись по значениям в TreeTableView?

Как программно пройтись по значениям в TreeTableView?

JavaFXПишу программу, столкнулся с проблемой, есть кнопка по которой заполняется TreeTableView, по нажатии по другой нужно к определенной записи добавлять...

228
Подстановка параметра PreparedStatement в JDBC Oracle

Подстановка параметра PreparedStatement в JDBC Oracle

Столкулся с тем, что данная конструкция подстановки параметра (:1) работает с драйвером Oracle:

203
Ограничение рерусров контейнера на aws ecs (Ошибка “Java heap space” при сортировке)

Ограничение рерусров контейнера на aws ecs (Ошибка “Java heap space” при сортировке)

Разворачиваю на AWS ECS контейнеры и пробую настроить оптимальную структуруДля тестирования запустил контейнер с сортировкой на 45млн элементов...

179