2012-03-22 16 views
5

Solo necesito una tabla para mostrar 3 filas que obtienen los 3 productos más vendidos de DB. La mesa está lista, pero hay una gran parte de la mesa que está prácticamente vacía, a excepción de 3 filas. ¿Cómo puedo configurar la altura de este panel de desplazamiento para que coincida con la altura de 3 filas?Cómo configurar JScrollPane para que muestre solo una cantidad específica de filas

SOLUCIÓN:

table.setPreferredScrollableViewportSize(table.getPreferredSize()); 

Respuesta

8

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); 
+0

+1, supongo que lo tienes mejor de mí de nuevo :-), pero no lo establecerá en nulo, ¿eliminará toda la 'JTable' de la vista? –

+0

@GagandeepBali no. los nombres de las columnas aún serán visibles :) – vedran

+0

+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

Cuestiones relacionadas