Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347

    Colorazione di una riga in una jTable

    Buongiorno a tutti,
    ho una jtalbe nella quale ho ridefinito prepareRenderer per farmi colorare in modo alternato le sue righe.
    Questa tabella la passo ad un'altra classe che mi appende o elimina una riga nella tabella(mantenendo la giusta alternanza di colori).
    però vorre far in modo che le righe che sto appendendo siano di un altro colore.
    Qualcuno ha un'idea?
    Saluti
    nh

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    risolto:
    alla tabella ho aggiunto una colonna con un valore numerico.
    quando aggiungo una riga, setto il valore della cella a 1.
    nel prepareRenderer quando trovo il valore a 1 la coloro di rosso.

    domanda. qualcuno da dirmi come posso rendere invisibile questa colonna ggiunta?
    thanc
    nh

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da newhook
    ho aggiunto una colonna con un valore numerico.
    quando aggiungo una riga, setto il valore della cella a 1.
    nel prepareRenderer quando trovo il valore a 1 la coloro di rosso.

    domanda. qualcuno da dirmi come posso rendere invisibile questa colonna ggiunta?
    L'approccio migliore sarebbe usare un "tuo" table model che "espone" questa informazione non come cella "standard" da visualizzare ma con un metodo apposito che fornisci nel tuo table model.

    Se non puoi usare questa soluzione (per qualunque motivo), ci sono altre soluzioni.

    Non so quale table model stai usando .... potrei presumere un DefaultTableModel che è espandibile. Si potrebbe "nascondere" una colonna se fosse al fondo e getColumnCount() restituisce un valore inferiore, così quella colonna del model non si vede!!
    Quindi basterebbe estendere DefaultTableModel e fare l'override di getColumnCount() per far restituire una colonna in meno. Ovviamente quel valore speciale lo devi "chiedere" al model.

    Altra possibilità, senza cambiare nulla del model, è rimuovere il TableColumn, vedi removeColumn() di TableColumnModel.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    se alla colonna gli do dimensione pari a zero?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da newhook
    se alla colonna gli do dimensione pari a zero?
    Anche .... ma dovresti pure renderla non ridimensionabile e comunque a video si potrebbe "vedere" che c'è qualcosa.
    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
    Jun 2009
    Messaggi
    347
    me la sono cavata in questo modo:

    codice:
    table.getColumnModel().getColumn(4).setMaxWidth(0);
    table.getColumnModel().getColumn(4).setWidth(0);
    table.getColumnModel().getColumn(4).setMinWidth(0);
    table.getColumnModel().getColumn(4).setPreferredWidth(0);
    table.getColumnModel().getColumn(4).setResizable(false);
    da notare che questi set non bisogna farli dopo setModel in quanto il setModel rimette i valori di default.

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.