Programación General > Java

 Problema Con Jscrollpane

(1/1)

bandro:
Hola a todos!

Tengo un problema con un JScrollPane. La idea es mostrar una serie de filas como si fuera una especie de hoja de calculo de excel, y como estas se me salen de la pantalla pues le pongo un JScrollPane. Los elementos de la hoja de calculo los meto dentro de un JPanel normal y corriente con un GridLayout, y cuando creo el JScrollPane le meto ese panel como argumento. Lo hago asi:

JScrollPane scroll = new JScrollPane(panelGeneral);
ventana.setContentPane(scroll);
ventana.setVisible(true);

Y luego ese resultado lo meto en la ventana (un JFrame).

Bien pues el problema que tengo, es q cuando el contenido sobrepasa lo q puede mostrar la ventana, sale la barra de desplazamiento horizontal (hasta ahi bien), pero la posicion de la barra es muy extraña, ya que está a la mitad del recorrido en vez de estar al principio que es lo que yo quisiera.

He intentado varias cosas...como por ejemplo

scroll.getViewport().setViewPosition(new Point(0,0))

ó

scroll.getHorizontalScrollBar() .setValue(0)

Y no surge efecto ninguna de las dos (y he comprobado que el valor de la barra horizontal realmente es 0, pero no se queda al principio del desplazamiento como quisiera). No se pq puede ser, pero estoy bastante desesperado ya...a ver si me podeis exar una mano por favor.

Muxas gracias.

jlsoriam:
Si puedes podrias mostrar aqui tu codigo para poder ayudarte mejor.
Saludos

Nagisa:
Hola!!

La verdad es que yo nunca habia usado JScrollPane, pero para ver lo que me comentabas me he hecho un pequeño ejemplo y a mi la barra de scroll me sale bien.  :blink:

Como ha dicho jlsoriam, si puedes postear el codigo, mejor.  :)

Mi ejemplo es:


--- Código: Text --- import javax.swing.*;import java.awt.*; class TestScroll{  JScrollPane sc; JPanel pan; JFrame f;  public TestScroll(){  f = new JFrame("Prueba");  pan = new JPanel(new GridLayout(6,0,5,5));  sc = new JScrollPane(pan); }  public void init(){  for (int i = 0; i < 200&#59; i++) pan.add(new Button(""+i));   f.add(sc, BorderLayout.CENTER);   f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   f.setSize(500, 500);  f.setVisible(true);   }  public static void main(String args[]){  TestScroll test = new TestScroll();  test.init(); }}  

Y adjunto la salida que me da.

Saludos.  :hola:

alemag:
El codigo que tengo es:

tabla.setPreferredScrollableViewportSize(new Dimension (450, 100));
JScrollPane sc=new JScrollPane();
sc.setViewportView(tabla);
sc.setHorizontalScrollBarPolicy (...);
sc.setVerticasScrollBarPolicy (...);
panel_principal.add(sc, constraints);

Quiero que a partir de un cierto tamaño (450,100) me salgan las barras de scroll, y si la tabla es de un tamaño menor a ese, que las barras se ajusten al tamaño de la tabla si lo necesita, es que a veces me queda un espacio entre la tabla y el panel. Espero que me haya explicado y que me ayudeis. Gracias.

Navegación

[0] Índice de Mensajes

Ir a la versión completa