JTabbedPane, addChangeListener () запрашивает базу данных только на последней вкладке

Итак, я застрял с этими петлями. У меня есть tabbedPane, и я добавляю к нему вкладки с помощью данных из базы данных, которые я получаю со строкой con.getKat() - (список строк, представляющих категории). Затем каждая вкладка должна содержать JTable с содержимым из моей базы данных со всеми записями, которые содержат категорию (String) из выбранной вкладки. Проблема в том, что каждая вкладка запускает ChangeListener() (который я проверяю с помощью System.out.println(kategorija)), но только последняя вкладка отображает данные (независимо от того, как я добавляю или удаляю вкладки, это всегда последняя вкладка). Здесь может быть что-то глупое, но любая помощь приветствуется.

ArrayList<String> ls = con.getKat();
    for(String s : ls){
        pane = new JScrollPane();
        tabbedPane.addTab(s, null, pane, null);
    }
tabbedPane.addChangeListener(new ChangeListener() {

        @Override
        public void stateChanged(ChangeEvent e) {
            kategorija = tabbedPane.getTitleAt(tabbedPane.getSelectedIndex());  
            System.out.println(kategorija);
            ArrayList<Ceni> artikli = con.getHuroCeni(kategorija);
            dtm.setRowCount(0);
            for(Ceni c : artikli){
                dtm.addRow(new Object[]{c.sifra, c.name, String.valueOf(c.cena1), c.tarifa});
                table = new JTable();
                table.setFont(new Font("Times New Roman", Font.PLAIN, 16));
                table.setBorder(new BevelBorder(BevelBorder.LOWERED, new Color(128, 128, 128), null, null, null));
                pane.setViewportView(table);
                table.setModel(dtm);                    
            }

        }
    });
pane.setViewportView(table); - здесь pane всегда относится к панели последней вкладки!
Prashant 25.06.2018 16:05

@Prashant, почему это так и где мне тогда использовать setViewportView ()?

Zozinski 25.06.2018 17:06
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
29
0

Другие вопросы по теме