Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    83

    Titolo delle colonne di una JTable

    Salve a tutti
    Ho creato una JTable seguendo il tutorial della sun:

    TableModel dataModel = new AbstractTableModel() {
    public int getColumnCount() { return 4; }
    public int getRowCount() { return 5
    public Object getValueAt(int row, int col) { return new Integer(row*col); }
    };
    jTable1 = new JTable(dataModel);
    jScrollPane1.setViewportView(jTable1);


    Ora qualcuno sa come devo fare ad impostare i titoli delle colonne, visto che me li setta per default a 'A','B','C','D' ?

    Grazie mille !

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

    Re: Titolo delle colonne di una JTable

    Originariamente inviato da onieliv
    Ora qualcuno sa come devo fare ad impostare i titoli delle colonne, visto che me li setta per default a 'A','B','C','D' ?
    Consiglio del tutto spassionato: leggi di più e meglio la documentazione .... in particolare il javadoc di javax.swing.table.TableModel e il relativo tutorial sull'uso di JTable.

    --> getColumnName()
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    83
    ti ringrazio del consiglio !
    In ogni caso, forse non mi sono espresso bene.
    I metodi get() come ben sai, restituiscono un valore, non ti permettono di settarlo.
    Dopo qualche anno di programmazione ci ero arrivato a capirlo
    Il problema è che non c'è un equivalente metodo set().

    Qualcun altro sa come fare ?
    Grazie mille dell'aiuto

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    83
    Ho scoperto come si fa, cercando su Internet.

    Metto qui la soluzione, nel caso possa servire a qualcuno in futuro

    TableColumn column = jTable1.getColumnModel().getColumn(1);
    column.setHeaderValue("Prova");

    /* RINOMINA LA SECONDA COLONNA CON 'Prova' */

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da onieliv
    TableColumn column = jTable1.getColumnModel().getColumn(1);
    column.setHeaderValue("Prova");
    Questa è solo una soluzione .... che tra l'altro "sovrascrive" il titolo rispetto a quello che proviene dal table model.

    L'altra soluzione è quella di modificare internamente il model in modo che "esponga" il nuovo nome della colonna e fare un fireTableStructureChanged() per notificare la modifica.
    Il fatto che la interfaccia del model non definisce un metodo es. setColumnName(), non ti proibisce affatto di mettere tu, nel "tuo" model un tale metodo e se i nomi delle colonne li hai tenuti in un array interno al tuo model, come vedi basta cambiare l'elemento all'indice N e fare il fireTableStructureChanged().

    Non hai ancora compreso bene come funzionano i table model, vero?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    20
    Originariamente inviato da andbin
    Questa è solo una soluzione .... che tra l'altro "sovrascrive" il titolo rispetto a quello che proviene dal table model.

    L'altra soluzione è quella di modificare internamente il model in modo che "esponga" il nuovo nome della colonna e fare un fireTableStructureChanged() per notificare la modifica.
    Il fatto che la interfaccia del model non definisce un metodo es. setColumnName(), non ti proibisce affatto di mettere tu, nel "tuo" model un tale metodo e se i nomi delle colonne li hai tenuti in un array interno al tuo model, come vedi basta cambiare l'elemento all'indice N e fare il fireTableStructureChanged().

    Non hai ancora compreso bene come funzionano i table model, vero?

    ciao,io ho provato a modificare il model,ma ho qualche difficoltà nell implementazione....
    potresti spiegarmi come fare??

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.