[Gvsig_desarrolladores] El mapa no se dibuja dentro de un JTabbedPane

Francisco José Peñarrubia fpenarru en gmail.com
Mar Nov 4 10:07:25 CET 2008


Hola María.

No lo he probado nunca, y creo que si mandas tu código lo podemos mirar.

De todas formas, yo revisaría dos cosas:
1.- No estás llamando a setVisible del JTabbedPane: De la ayuda del 
JTabbedPane

<P>The tab title can be rendered by a <CODE>Component</CODE>. For 
example, the following produce similar results: <PRE> // In this case 
the look and feel renders the title for the tab. 
tabbedPane.addTab("Tab", myComponent); // In this case the custom 
component is responsible for rendering the // title of the tab. 
tabbedPane.addTab(null, myComponent); tabbedPane.setTabComponentAt(0, 
new JLabel("Tab")); </PRE>The latter is typically used when you want a 
more complex user interaction that requires custom components on the 
tab. For example, you could provide a custom component that animates or 
one that has widgets for closing the tab. <P>If you specify a component 
for a tab, the <CODE>JTabbedPane</CODE> will not render any text or icon 
you have specified for the tab. <P><STRONG>Note:</STRONG> Do not use 
<CODE>setVisible</CODE> directly on a tab component to make it visible, 
use <CODE>setSelectedComponent</CODE> or <CODE>setSelectedIndex</CODE> 
methods instead. </P>

2.- Prueba a decirle al JTabbedPane que no quieres usar doble buffer:
JTabbedPane.setDoubleBuffered(false);

De todas formas, ya te digo que no lo he probado. Si todavía tienes 
problemas, nos avisas.

PS: ¿Y poner un JPanel dentro del JTabbedPane y dentro del JPanel el 
MapControl?

Saludos.

Fran

Maria Arias de Reyna escribió:
> Hola,
>
> ¿Hay algún motivo por el que el MapControl no pueda funcionar dentro de otro 
> JComponent?
>
> He estado haciendo pruebas para un mapa simple con pan y zoom y ha funcionado 
> correctamente dentro de un JFrame. Pero cuando intento hacer esto mismo, con 
> el mismo código, dentro de un JTabbedPane (o sea, dentro de un JPanel que 
> está dentro de un JTabbedPane), no funciona.
>
> A veces me pinta el JTabbedPane de nuevo dentro del JPanel donde se supone que 
> está el MapControl, por lo que parece que en algún momento el MapControl 
> equivoca el Graphics donde tiene que pintar el MapControl y repinta el padre 
> en vez del MapControl. 
>
> Otras veces no pinta nada (se ve el fondo como si no hubiera ningún JPanel 
> dentro), por lo que parece que el MapContext ha perdido los datos del mapa y 
> las capas que tiene que dibujar.
>
> Pero lo más extraño es que si intento hacer pan o zoom donde se supone que 
> está el mapa (aunque no se vea), a veces aparecen flashes del mapa que, o 
> bien desaparecen, o bien aparece y se queda dibujado hasta que hago otro 
> movimiento.
>
> ¿Alguien tiene alguna pista sobre lo que está pasando?
>
> Un saludo,
>   



Más información sobre la lista de distribución gvSIG_desarrolladores