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

    Andare a capo in una cella di JTable

    Salve a tutti
    Ho creato una JTable e dentro le celle devo inserire più stringhe, ovvero più stringhe nella stessa cella separate da '\n'.
    Pero' se inserisco una stringa tipo "uno\ndue" nella cella mi scrive unodue , come se il carattere \n non lo vedesse proprio...
    come posso fare ??

  2. #2
    praticamente setti un componente tramite setCellRenderer (textarea o label) e poi il testo al suo interno lo potrai formattare anceh tramtie html nel caso delle label.

    ciao
    Ondare, il mio blog!

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da dav22
    praticamente setti un componente tramite setCellRenderer (textarea o label)
    Beh no ... la cosa non è così immediata/intuitiva. Nel senso che un "qualunque" componente non può essere direttamente impostato come renderer!! Bisogna innanzitutto definire una classe che implementa la interfaccia TableCellRenderer e quindi implementare il metodo getTableCellRendererComponent().

    Questo metodo va fatto in modo abbastanza "oculato". Deve prendere da JTable il valore della cella e con questo deve impostare un componente che poi restituisce. Generalmente un renderer lo si definisce in modo che è-un componente (es. estende JLabel) e quindi basta impostare sé stesso e ritornare this. Per fare le cose bene dovrebbe anche cambiare l'aspetto del componente in base allo stato di selezione/focus della cella (entrambi passati al metodo getTableCellRendererComponent).

    Poi bisogna comunque sapere come funziona un renderer. Il componente ritornato da getTableCellRendererComponent() in realtà non esiste "fisicamente" nelle celle. Ciò che si vede nelle celle è solo una "stampa" ... una mera "proiezione" del componente nella cella.

    Tornando alla questione iniziale di onieliv, bisogna anche tenere presente che la dimensione della cella non dipende dal renderer o dal componente ritornato ... è impostato da JTable (per l'altezza si veda setRowHeight() di JTable).

    Insomma ... meno immediato di come l'hai "dipinto".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    sarà la vecchiaia che me lo fa ricordare più semplice di quello che è

    comunque certo che se si mette a implementare il JTableHeader, TableCellEditor e a giocare con le formattazioni e validazioni delle celle non ne usciamo in più.. secondo me gli basta partire dal DefaultTableCellRenderer e impostare una altezza sufficiente a far vedere le righe poi da li lo implementerà poco alla volta

    ciao
    Ondare, il mio blog!

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.