Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Problema aggiornamento JTable

    ciao!

    ho una JTable che prende i dati da un file json.
    il mio problema è che quando aggiorno il file, la JTable non si aggiorna.
    o meglio, si aggiorna solo quando rilancio il programma.
    quando lancio l'aggiornamento faccio questo:
    codice:
        public void createConnection() {
            try {
                if (CheckConnection.check()) {
                    jsb.launchService("all_books");
                    jsb.launchService("all_authors");
                    jsb.launchService("all_editors");
                    jsb.launchService("graph_authors");
                    jsb.launchService("graph_editors");
                    jsb.download(UrlAndPath.JSON_LIBRI);
                    jsb.download(UrlAndPath.JSON_AUTORI);
                    jsb.download(UrlAndPath.JSON_EDITORI);
                    jsb.download(UrlAndPath.GRAPH_AUTHORS);
                    jsb.download(UrlAndPath.GRAPH_EDITORS);
                    riempiTable();
                    riempiCombo();
                    resetTxt();
                    tableData.requestFocus();
                } else {
                    JOptionPane.showMessageDialog(null, "No connection");
                }
            } catch (IOException ex) {
                JOptionPane.showMessageDialog(null, ex.getMessage());
            }
        }
    in pratica scarico diversi file e poi lancio il metodo che riempie la JTable (riempiTable()):
    codice:
        private void riempiTable() {
            try {
                MyTableModel newModel = (MyTableModel) tableData.getModel();
                while (newModel.getRowCount() > 0) {
                    newModel.removeRow(0);
                }
                ArrayList<ArrayList<String>> map = jsonRead.getAllBooks();
                map.stream().forEach((map1) -> {
                    ((MyTableModel) tableData.getModel()).addRow(map1.toArray());
                });
                textCount.setText(String.valueOf(tableData.getRowCount()));
                txtQuickSearch.setEditable(true);
            } catch (IOException ex) {
                JOptionPane.showMessageDialog(null, ex.getMessage());
            }
        }
    i dati sono aggiornati, anche perchè quando riavvio il programma la JTable ha tutti i dati precisi.
    qualche idea??

  2. #2
    in pratica lancio tutte quelle operazioni in un altro thread.
    e quindi anche l'aggiornamento della JTable va fatto nel worker.
    ecco perchè non funzionava.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.