Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Problemi jTable

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    22

    Problemi jTable

    Buongiorno a tutti,
    premetto, e si capisce dalle discussioni precedenti, che di java sono novello. Ho creato una jTable con NeatBeans(Quindi il codice non l'ho generato io), adesso ho due problemi.
    1)
    Vorrei rendere alcune celle della tabella non editabili, ed altre si. Facendo delle ricerche ho visto che bisogna modificare il DefaultTableModel, e farmi ritornare false su isCellEditable(), ma non riesco a capire se posso farlo visto che il codice della tebella l'ha generato netBeans.
    2)
    I valori inseriti nella tabella, li carico da un database. Adesso preferrirei se ad ogni dato letto, si aggiungesse una una riga. Facendo delle ricerche ho visto che esiste il metodo addRow che si occupa di ci. Quindi ho settato le righe ad 1, dalle propietà delle jTable. E poi:

    while(result.next()){

    jTable.setValueAt(result.getString("titolo"), q, 0);
    jTable.setValueAt(result.getString("ingredienti"), q,1);
    jTable.setValueAt(result.getString("prezzo") + "€", q, 2);
    jTable.addRowSelectionInterval(q, q+1);
    q++;
    }
    Ho provato anche a modificare gli intervalli, ma non và!
    Questi problemi sono risolvibili, oppure è opportuno che implementi io il codice della jTable?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Problemi jTable

    Originariamente inviato da gmnf
    1)
    Vorrei rendere alcune celle della tabella non editabili, ed altre si. Facendo delle ricerche ho visto che bisogna modificare il DefaultTableModel, e farmi ritornare false su isCellEditable(), ma non riesco a capire se posso farlo visto che il codice della tebella l'ha generato netBeans.
    Sì, è il isCellEditable di un table model che permette di indicare se una cella è editabile o no. DefaultTableModel è una implementazione di TableModel. Se vuoi usare questa ok, la sola questione è che non puoi cambiare DefaultTableModel così su 2 piedi ... devi creare una tua classe che estende DefaultTableModel e che fa l'override di isCellEditable per far ritornare false nei casi che vuoi.

    Questo certamente puoi farlo e se hai un riferimento a JTable puoi ovviamente anche settargli il "tuo" DefaultTableModel quando vuoi. Se puoi dire all'editor "visuale" di usare già direttamente questa tua classe .... questo non te lo so dire.

    Originariamente inviato da gmnf
    2)
    I valori inseriti nella tabella, li carico da un database. Adesso preferrirei se ad ogni dato letto, si aggiungesse una una riga. Facendo delle ricerche ho visto che esiste il metodo addRow che si occupa di ci. Quindi ho settato le righe ad 1, dalle propietà delle jTable. E poi:

    while(result.next()){

    jTable.setValueAt(result.getString("titolo"), q, 0);
    jTable.setValueAt(result.getString("ingredienti"), q,1);
    jTable.setValueAt(result.getString("prezzo") + "€", q, 2);
    jTable.addRowSelectionInterval(q, q+1);
    q++;
    }
    Ho provato anche a modificare gli intervalli, ma non và!
    Questi problemi sono risolvibili, oppure è opportuno che implementi io il codice della jTable?
    Se usi DefaultTableModel c'è appunto addRow che è in 2 versioni:

    void addRow(Object[] rowData)
    void addRow(Vector rowData)

    Vedi cosa ricevono? Devi creare tu o un array o un Vector che deve contenere i dati della riga che addRow aggiungerà.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.