иначе вы рискуете с ArrayIndexOfBoundException ....

аю графический интерфейс, и он включает в себя JPanel, внутри этой JPanel есть JTable, и я хочу сделать следующее: когда я нажимаю кнопку, они оба появляются (так как я использую CardLayout). Код:

    private void teGjithaButtonActionPerformed(java.awt.event.ActionEvent evt) {                                               
    try {
        parentPanel.setVisible(true);
        parentPanel.removeAll();
        parentPanel.add(tgjPanel);
        parentPanel.repaint();
        parentPanel.revalidate();
        listAllCurtains();
    } catch (SQLException ex) {
        Logger.getLogger(MainBrillant.class.getName()).log(Level.SEVERE, null, ex);
    }
}  

И код для listAllCurtains ():

 DefaultTableModel deftm = (DefaultTableModel) allTable.getModel();

    if (deftm.getRowCount() != 0) {
        deftm.setRowCount(0);
    }

    stm = (Statement) conn.createStatement();
    ResultSet rs = stm.executeQuery("select * from customerregister.curtain inner join curtainrel on curtain.code = curtainrel.curtainCode;");
    while (rs.next()) {
        String shifra = rs.getString("code");
        String ngjyra = rs.getString("color");
        String emri = rs.getString("name");
        double cmimi = rs.getDouble("price");
        double sasia = rs.getDouble("amount");
        allCurtains.add(new Curtain(shifra, ngjyra, emri, cmimi, sasia));
    }

    Object[] row = new Object[5];
    for (int i = 0; i < allCurtains.size(); i++) {
        row[0] = allCurtains.get(i).getShifra();
        row[1] = allCurtains.get(i).getEmri();
        row[2] = allCurtains.get(i).getNgjyra();
        row[3] = allCurtains.get(i).getCmimi();
        row[4] = allCurtains.get(i).getSasia();
        deftm.addRow(row);
    }

}

Проблема в том, что когда я снова нажимаю кнопку, даже если есть эта часть кода, чтобы гарантировать, что данные не дублируются:

if (deftm.getRowCount() != 0) {
        deftm.setRowCount(0);
    }

Он продолжает вставлять одни и те же данные в таблицу при каждом нажатии кнопки. Я не могу понять, почему это происходит, и я очень ценю вашу помощь.

Ответы на вопрос(1)

Ваш ответ на вопрос