JTabbedPane,addChangeListener()仅在最后一个选项卡上查询数据库

时间:2018-06-25 14:00:07

标签: java swing jtabbedpane

好的,所以我陷入了这些循环。我有一个tabbedPane,我通过从行con.getKat()-(代表类别的字符串列表)中获得的数据库数据向其中添加了制表符。然后,每个选项卡都应包含一个JTable,其中包含我数据库中的内容以及所有包含所选选项卡中category(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);                    
            }

        }
    });

0 个答案:

没有答案