Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    JTable rendere non scrivibile una colonna

    Ciao a tutti....avrei bisogno di un aiutino per un problema che non riesco a risolvere....
    praticamnte io ho un jTable in cui l'utente deve inserie dei dati....ma come faccio a far in modo che li possa inserire solo in una colonna e in quella di fianco no???

    Ciao a utti e grazie!...

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

    Re: JTable rendere non scrivibile una colonna

    Originariamente inviato da orion1983
    Ciao a tutti....avrei bisogno di un aiutino per un problema che non riesco a risolvere....
    praticamnte io ho un jTable in cui l'utente deve inserie dei dati....ma come faccio a far in modo che li possa inserire solo in una colonna e in quella di fianco no???
    Dipende dal "table model" che intendi usare ... è lui che con il metodo isCellEditable() indica se una cella è editabile o no.

    Quindi bisogna vedere come/dove hai memorizzato i dati. Li hai passati al costruttore di JTable che riceve dei Vector? O quello che riceve gli array di Object? O hai istanziato un DefaultTableModel?? In tutti questi casi il table model ritorna sempre 'true' per isCellEditable(). Se appunto non va bene, devi gestire la cosa diversamente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ciao....innanzi tutto grazie x la risposta.....
    io ho creato un mio tableModel in cui le righe le passo come vettori di String.....praticamente se ho capito bene devo modificare il tableModel impostando per ogni cella che voglio che non sia modificabile isCellEditable (false)???

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da orion1983
    io ho creato un mio tableModel in cui le righe le passo come vettori di String.....praticamente se ho capito bene devo modificare il tableModel impostando per ogni cella che voglio che non sia modificabile isCellEditable (false)???
    Ma hai usato un DefaultTableModel??
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Sì....

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da orion1983
    Sì....
    Allora devi estendere DefaultTableModel e fare l'override di isCellEditable() per far ritornare true o false in base a dove vuoi rendere le celle editabili o no.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da andbin
    Allora devi estendere DefaultTableModel e fare l'override di isCellEditable() per far ritornare true o false in base a dove vuoi rendere le celle editabili o no.
    Se ad esempio vuoi che la terza colonna non sia editabile:
    codice:
    public boolean isCellEditable(int row, int col) {
       return (row != 2);
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Ho provato a sovrascivere il metodo come mi avete consigliato

    public boolean isCellEditable(int row, int col) {
    return (row != 0);
    }
    poi chiamo il metodo facendo model.isCellEditable(0, 0) in quanto voglio che la prima colonna non sia editabile...
    ma non mi funziona, le celle rimangono editabili tutte
    cosa sbaglio???

    Grazie a tutti e ciao

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da orion1983
    poi chiamo il metodo facendo model.isCellEditable(0, 0) in quanto voglio che la prima colonna non
    Cosa vuol dire che richiami il metodo? E' la JTable che richiama quel metodo, non tu... tutto ciò che devi fare è sottoporre ad override il metodo, come indicato nell'esempio precedente.
    Una volta applicato il TableModel alla tua tabella, si arrangia lei a capire se una colonna è editabile oppure no...

    Forse non sono stato abbastanza chiaro io: quel metodo deve essere scritto nel tuo TableModel...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    No eri stato chiarissimo infatti io ho fatto così e l'ho aggiunto alla fine della classe che estende il defaultTableModel sovrascrivendo il metodo ma quando creo la tabella rimane comunque tutta editabile

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.