Originariamente inviato da andbin
Purtroppo non c'è un metodo o sistema già fatto per far sì che le colonne si dimensionino in "automatico" in base al loro contenuto.
La questione è che il contenuto è visualizzato tramite i ben noti "renderer" ma la larghezza della colonna non è in funzione del renderer .... è il contrario. Cioè è JTable tramite appositi criteri (o il programmatore esplicitamente) a poter impostare una larghezza alla colonna che poi a sua volta si ribalta sulla dimensione del Component (fornito dal renderer) che JTable "stampa" a video.

Tecnicamente comunque si potrebbe fare, anche se "macchinoso". Prendi il renderer relativo alla colonna X, invochi il renderer (il getTableCellRendererComponent() ) passando tutti i dati compreso il valore della riga i-esima). Per ogni "cella" della colonna prendi il "preferred size" del Component fornito dal renderer. Quindi calcoli il massimo tra tutte le larghezze "preferite" e magari ci sommi qualcosina (penso innanzitutto ai bordi/gap delle celle, vedi i metodi di JTable).
E ottieni la larghezza complessiva "preferita" per visualizzare al "giusto" quella colonna.

Ma ripeto, non c'è nulla di già fatto.
Sul tutorial Sun di JTable c'è un esempio di come fare. Basta adattarlo al proprio modello di tabella.
L'ho implementato e funziona. Solo che non riesco a capire come fare in modo che la tabella prenda una dimensione preferita.
Nel senso che io calcolo la larghezza di ogni colonna, e le sommo tutte per ottenere quella che dovrebbe essere la larghezza della tabella totale.
La tabella è in uno JScrollPane.
Come posso fare per rendere la tabella di una certa larghezza? E' possibile?