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

    pulire una jTable

    ciao! a tutti. come faccio una volta scritto dentro una jTable,eliminare e pulire il contenuto di essa per poi ricominciare da capo a riempirla? la mia jTable deriva da una matrice di Object 4x3.
    c'è un codice che l'operazione di pulizia tutto in sola volta. o devo cancelare elemento per elemento.
    nel caso il reset lo vorrei mettere dentro un metodo. per poi richiamarlo in un jbutton dentro una view.
    il codice dovrà essere simile a questo:
    codice:
    public void reset(){
    // codice pulire jTable
    
    }
    penso che bisogna in qualche modo pulire la matrice e forse anche le arrayList che uso nel mio programma.
    pero non ne sono sicuro. e poi anche se fosse non saprei come fare.

  2. #2
    io uso questo sulla mia jtable riempita da mysql:
    codice:
                DefaultTableModel newModel = (DefaultTableModel) tableData.getModel();
                while (newModel.getRowCount() > 0) {
                    newModel.removeRow(0);
                }
    // richiamo il metodo di select
    ......

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    51
    Io lo faccio settando il TableModel della tabella in questo modo:
    codice:
            Object[] names = {"nome", "cognome"};
            
            Object[][] values = { 
                {"mario", "rossi"},
                {"giuseppe", "verdi"}
            };
            
            System.out.println(table.getModel().getClass());
            
            table.setModel(new DefaultTableModel(values, names));
            
            ((DefaultTableModel)table.getModel()).removeRow(0);
    La classe DefaultTableModel definisce un metodo apposito, quindi potresti fare un for per eliminare tutte le n righe. Secondo me c'è qualche altro metodo più immediato nel caso lo trovassi lo posto

  4. #4
    grazie a tutti per i consigli comunque se ne date altri per confrontare altri metodi magari si trova un metodo + veloce. io ho direttamente creato la mia jtable usando il modello di defaulttablemodel. e da oggi mi chiedo la differenza tra usare tablemodel, abstracttablemodel e defaulttablemodel. comunque a di la di questo ho scoperto anche ilmetodo di Jtable removerowselectionInterval(int idex1, int index2);
    dovrebbe essere un metodo per ciò che chiedo in questa discusione. però non ne sono sicuro.
    anche lo provato ad usarlo solo che mi dava illegalargument exception rage out of interval.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    51
    TableModel è un'interfaccia che definisce tutti i metodi che dovranno avere questo genere di classi.
    AbstractTableModel estende TableModel ed è per l'appunto una classe astratta che definisce quasi tutti i metodi di TableModel e ne aggiunge i propri.
    Per la precisione i metodi non implementati sono:

    codice:
                public int getRowCount() 
              
                public int getColumnCount() 
    
                public Object getValueAt(int rowIndex, int columnIndex)
    Infine DefaultTableModel è una classe che estende AbstractTableModel e quindi è anche una TableModel. Questa classe definisce tutti i metodi richiesti per rispettare l'interfaccia e ne definisce di nuovi, tra cui quello usato per l'eliminazione delle righe.

    Quindi non puoi creare direttamente un'oggetto TableModel o AbstractTableModel per ovvie ragioni, ma devi creare e usare un'istanza di una classe che le implementi.

    La funzione removeRowSelectionInterval(index0, index1) di JTable deseleziona le righe da index0 a index1 inclusi.

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.