È un capriccio di attuazione scorrevole della JTable: imposta una dimensione arbitraria prefScrollable fissa.
È NULL per fare lo ScrollPane a ripiegare ad usare PreferredSize della tabella:
table.setPreferredScrollableViewportSize (null);
Modifica
Outch, @vedran è corretto, che non è sempre lavorando in una tabella con nucleo layoutManagers nucleo (era una nice hack in another question :) scusate per la confusione. Copia il suo commento qui:
table.setPreferredScrollableViewportSize(table.getPreferredSize());
è una valida opzione, anche se tutti i soliti bewares sui formati di difficile codifica si applicano anche qui.
Un JTable ben educato implementerebbe un getPreferredScrollableViewportSize più ragionevole, calcolandolo in termini di contenuto. JXTable (che è il tavolo migliore educati, mi ha prevenuto :-), è possibile impostare il pref in termini di righe visibili, proprio come in un elenco:
xtable.setVisualRowCount(3);
+1, immagino hai avuto meglio su di me di nuovo :-), ma non lo imposterà su null, cancellerà l'intero 'JTable' dalla vista? –
@GagandeepBali no. i nomi delle colonne saranno ancora visibili :) – vedran
+1, per favore mia stupida domanda, c'è differenza tra 'XxxViewportSize (table.getPreferredSize)' e il tuo 'XxxViewportSize (null)' nel caso di righe non hanno la stessa altezza – mKorbel