Java - Scroll en Canvas

 
Vista:

Scroll en Canvas

Publicado por Carlos (2 intervenciones) el 08/02/2007 17:54:39
Buenas, les comento mi problema:
Deje dos screenshot en fotos.cdpg.com.ar para que me entiendan mejor.

Tengo una clase que hereda de Canvas y tiene redefinido el método paint
Si el usuario lo requiere el Canvas puede llegar a crecer en tiempo de ejecución, sin embargo no debe mostrarse más grande en el formulario, sino que se le debe poder hacer scroll.
En resumen, la parte visible del canvas no debe crecer, debe estar oculta con la posibilidad de hacer scroll.
Para eso coloqué el canvas en un JScrollPane quedandome algo asi:
JFrame -> JScrollPane -> JPane -> Canvas
El problema está en que cuando agrando el canvas, se redibuja pero fuera del JScrollPane y tapa a todos los demás controles.

Si alguien sabe como darme una mano le voy a estar muy agradecido

Saludos!!

Carlos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Scroll en Canvas

Publicado por chuidiang (950 intervenciones) el 08/02/2007 18:51:01
Hola:

He visto comportamientos raros con el Canvas, que es el componente que está pensado en principio para pintar. Sin embargo, al final siempre acabo pintando sobre un JComponent, que es el más sencillo de Swing y que da menos problemas. Simplemente tienes que cambiar la herencia a ver si va mejor.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Scroll en Canvas

Publicado por Carlos (2 intervenciones) el 08/02/2007 22:49:06
Muchas gracias chuidiang!!!
lo probe y mejoró muchisimo, ya no tiene comportamientos raros.
Deje otro screenshot. (foto.cdpg.com.ar), es la que tiene fondo gris.

mi clase se llama areaGrafico, y hay dos cosas que no pude hacer:

1) darle color de fondo (No se que estaré haciendo mal)

//Constructor de mi clase
public areaGrafico(JFrame jPadre){
...
setBackground(Color.white);
....
}

2) Ahora no muestra las barras de scroll
Estas son las líneas de código

areaGrafico lienzo = new areaGrafico(ventanaGraficador); //Constructor
graficoPanel = new JScrollPane(); //Panel de scroll

graficoPanel.setPreferredSize(new Dimension(500,300));
graficoPanel.setViewportView(lienzo); //¿Esto esta bien?

graficoPanel.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder("Gráfico"),
BorderFactory.createEmptyBorder(5,5,5,5)));

Bueno, muchas gracias por todo!!

Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar