JScrollPane, JTable y scroll horizontal

Estaba implementando una interfaz gráfica con Java, y quería insertar un objeto JTable dentro de un JScrollPane. La tabla era más grande que el JScrollPane, pero pese a ello, no se porqué sólo se mostraba el scroll vertical. Gasté mucho tiempo leyendo manuales de Swing, revisando mi código… Era algo muy simple y todo parecía estar bien, pero entonces… ¿por que no funcionaba?

Finalmente, encontré la solución: resulta que hay un bug en Java que aparece cuando quieres usar una JTable dentro de un JScrollPane. La solución fue crear una clase que extendiera a JTable, para poder sobreescribir el método JTable.getScrollableTracksViewportWidth() por este otro:

public boolean getScrollableTracksViewportWidth() {

if (autoResizeMode != AUTO_RESIZE_OFF) {

if (getParent() instanceof JViewport) {

return (((JViewport)getParent()).getWidth() > getPreferredSize().width);

}

}

return false;

}

Fuente: DaniWeb Forum

Bookmark and Share

4 comentarios »

RSS feed para los comentarios de esta entrada. TrackBack URI

  1. GENIAL, MUCHAS GRACIAS ME AYUDO MUCHISIMO!!!

    Comentario by Alejandro — octubre 30, 2010 #

  2. NOTABLE, IMPRESIONANTE, NO ENCONTRABA AYUDA EN NINGUNA PARTE, MUCHISIMAS GRACIAS

    Comentario by Gustavo Grosso — febrero 13, 2011 #

  3. ME ESTABA VOLVIENDO LOCO HASTA QUE HE ENCONTRADO TU SOLUCION.
    MUCHISIMAS GRACIAS

    Comentario by Alejandro Giraldez — marzo 5, 2011 #

  4. excelente amigo…esto es de gran ayuda para mi…llevaba horas buscando esta solución..gracias de nuevo!! =)

    Comentario by Danny — marzo 8, 2011 #

Deja un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds. Valid XHTML and CSS.