Odświeżanie jTable

0

Witam wszystkich,

Posiadam tabelę jTable, którą chciałbym odświeżać po naciśnięciu przycisku. Próbowałem metody repaint, fireTableChanged, updateUI, lecz niestety nic nie działa. Prosiłbym o pomoc, dziękuję.

Tak oto tworzę tabelę:

  public JTable getJTable0(){
                
        Database db;
        
        try{
                db = DatabaseBuilder.open(new File("baza//BAZA.mdb"));
                table = db.getTable("Przepisy");
        }
        catch(IOException e){
                e.printStackTrace();
        }
        

        ArrayList <String> nazwa = new ArrayList<String>();
        ArrayList <String> skladniki = new ArrayList<String>();
        ArrayList <String> przepis = new ArrayList<String>();
        
        
                        //Nienazwany błąd wynika z tego for'a.
                        for(Row row : table){
                          nazwa.add(row.get("Nazwa").toString());
                          skladniki.add(row.get("Skladniki").toString());
                          przepis.add(row.get("Przepis").toString());
                          iloscRekordow++;
                        }
                        
                        
                        
                                final Object rowData[][] = new Object[iloscRekordow][50];
                        
                                for(int i=0;i<iloscRekordow;i++){
                                        rowData[i][0] = nazwa.get(i);
                                        rowData[i][1] = skladniki.get(i);
                                        rowData[i][2] = przepis.get(i);
                                }
                                
                                final String columnNames[] = { "Nazwa przepisu", "Skladniki", "Przepis"};

                        model = new DefaultTableModel(){
                                
                            public int getColumnCount() {
                              return columnNames.length;
                            }

                            public String getColumnName(int column) {
                              return columnNames[column];
                            }

                            public int getRowCount() {
                              return rowData.length;
                            }

                            public Object getValueAt(int row, int column) {
                              return rowData[row][column];
                            }

                            @SuppressWarnings({ "unchecked", "rawtypes" })
                                public Class getColumnClass(int column) {
                              return (getValueAt(0, column).getClass());
                                  
                            }

                          };

                jTable0 = new JTable(model);

return jTable0;

0

A może byś łaskawie zamieścił kod pokazujący jak wymieniasz tabelę w oknie programu. A może w ogóle nie wymieniasz i liczysz na cud?

0

Chciałem to wymienić za pomocą metody model.fireTableChanged(); uruchamianą za pomocą przycisku, aczkolwiek nic to nie dało.
Zarówno jak jTable0.repaintAll(); i metody updateUI też nie działa. Czy w tym przypadku trzeba usunąć całą tabelę i narysować ją jeszcze raz? Jeżeli tak, to jak można ją usunąć?

0

Pokażesz fragment kodu, który ma zmienić wyświetlane dane, czy nie?

1 użytkowników online, w tym zalogowanych: 0, gości: 1