Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > centrar segun coordenas Jpanel en un scrollpane

Saludos a toda la comunidad.

Tengo un inquietud con la intension que me orienten; tengo un jpanel dentro de un scrollpane, el jpanel es mas grande que el scrollpane; quiero que dado una coordenada X y Y del jpanel coincida en el punto central del scrollpane ¿Alguien sabe como hacer eso? o por lo menos una ayuda.

enero 24, 2012 | Unregistered Commenterresalpa84

Todos los componentes tienen un getHeight() y un getWidth(), mediante los que puedes conocer las dimensiones actuales del componente.
Sin embargo, no acabo de entender del todo lo que quieres obtener.

enero 24, 2012 | Registered Commenterchoces

choces , gracias por responder.

Te cuendo que estoy haciendo un proyecto, que consiste en crear un grafo que contengan todas las vias de Colombia, asi como sus poblaciones, peajes; representarlo en un mapa lo mas real posible, cosa que ya hice.

coloque de fondo una imagen y sobre ella dibuje las poblacioanes (nodos), vias (aristas) y peajes; el usuario digitara un poblacion inicial y otra final y le mostrara la ruta mas corta y la mas barata.

Ya que sabes lo que estoy haciendo, me gustaria saber como hago para que cuando el usuario escoga el punto inicial y el final; mueva el jpanel dentrol del jscrollpane de tal forma que el punto inicial quede centrado en el jscrollpane.

necesito algun ejemplo o link; o explicacion.

Gracias de antemano

enero 24, 2012 | Unregistered Commenterresalpa84

Para hacer lo que creo que entiendo, necesitas manejar el Viewport del JScrollPane.
http://docs.oracle.com/javase/7/docs/api/javax/swing/JViewport.html

1.- Determinar el tamaño.
http://docs.oracle.com/javase/7/docs/api/javax/swing/JViewport.html#getViewSize()
Con este método obtienes la dimensión del Viewport, por lo que sabes la altura y anchura, y por consiguiente, puedes calcular el punto central.

2.- Mover el scroll.
http://docs.oracle.com/javase/7/docs/api/javax/swing/JViewport.html#setViewPosition(java.awt.Point)
Con este método puedes mover el Viewport al punto que quieras, tal y como si desplazases manualmente las barras horizontal y vertical. Ten en cuenta que ese punto es el origen de coordenadas del Viewport, la esquina superior izquierda.

Lo que queda es hacer los cálculos que relacionen esas coordenadas que introduce el usuario, con la posición deseada del Viewport ;)
También deberías tener en cuenta que si el componente puede cambiar de tamaño en ejecución, el punto central sería diferente.

enero 25, 2012 | Registered Commenterchoces

choces, de nuevo mil gracias, aunque aun no lo he probado se que me servirá de mucho para pulir mi programa.

Enteramente agradecido.

enero 25, 2012 | Unregistered Commenterresalpa84