Es un capricho de la aplicación desplazable del JTable: se establece un tamaño fijo prefScrollable arbitraria.
Usted anularla para hacer el scrollPane a caer de nuevo a usar preferredSize de la mesa:
table.setPreferredScrollableViewportSize (null);
Editar
outch, @vedran es correcta, eso no es siempre trabajando en una mesa central con layoutManagers núcleo (era un nice hack in another question :) lo siento por la confusión. Copia de su comentario aquí:
table.setPreferredScrollableViewportSize(table.getPreferredSize());
es una opción viable, aunque todos los tamaños habituales sobre bewares codificantes duras se aplican aquí también.
Una JTable de buen comportamiento implementaría un getPreferredScrollableViewportSize más razonable, f.i calculando en términos de contenido. JXTable (que es la tabla de mejor comportamiento, me sesgada :-), podría configurar el pref en términos de filas visibles, al igual que en una lista:
xtable.setVisualRowCount(3);
+1, supongo que lo tienes mejor de mí de nuevo :-), pero no lo establecerá en nulo, ¿eliminará toda la 'JTable' de la vista? –
@GagandeepBali no. los nombres de las columnas aún serán visibles :) – vedran
+1, por favor, mi estúpida pregunta, ¿hay diferencias entre 'XxxViewportSize (table.getPreferredSize)' y la suya 'XxxViewportSize (null)' en el caso de las filas no tienen la misma altura – mKorbel