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

María Arias de Reyna marias en emergya.es
Mar Nov 4 11:17:33 CET 2008


Hola Francisco,

He probado lo que me has sugerido, pero no he conseguido avances.

Utilizo la versión 1.1.2 de gvSIG.

Te pego un código simplificado que muestra el error que te explico. Si lo
ejecutas verás que pinta en vez del mapa, otra vez el frame principal. 

Main.java tendría este método principal:

	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
		UIManager.put("swing.boldMetal", Boolean.FALSE);

		JFrame frame = new JFrame();
		JTabbedPane tabbedpane = new JTabbedPane();
		tabbedpane.setDoubleBuffered(false);
		JPanel panel = new JPanel(new BorderLayout());
		RenderMap render = new RenderMap();
		panel.add(render.getNewMapControl(), BorderLayout.CENTER);
		tabbedpane.add("mapa", panel);
		tabbedpane.add("otra pestaña", new JLabel("Contenido"));
		frame.add(tabbedpane);
		frame.setSize(new Dimension(800, 600));
		frame.setVisible(true);

			}
		});


Y RenderMap.java sería una clase que simplifica la creación del MapControl:

public class RenderMap {

	private MapControl newMapControl;
	static {
		LayerFactory.setDriversPath("drivers");
	}

	public RenderMap() {

		newMapControl = new MapControl();
		newMapControl.setVisible(true);

		PanListener panListener = new PanListenerImpl2(newMapControl);
		PointListener zoomInPointListener = new ZoomInPointListenerImpl(
				newMapControl);
		newMapControl.addMapTool("zoomAndPan", new Behavior[] {
				new DraggerBehavior(panListener),
				new PointBehavior(zoomInPointListener) });
		newMapControl.setTool("zoomAndPan");

		com.iver.cit.gvsig.fmap.ViewPort vp2 = newMapControl.getMapContext()
				.getViewPort();
		vp2.setBackColor(Color.WHITE);
		vp2.setImageSize(new Dimension(100, 100));

		this.addLayer2();
		try {
			this.addLayer();
		} catch (FieldNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (DriverException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		newMapControl.setVisible(true);
		newMapControl.repaint();

	}

	public void addLayer() throws FieldNotFoundException, DriverException {

		FLyrVect l = (FLyrVect) LayerFactory
				.createLayer(
						"Vias",
						(VectorialFileDriver) LayerFactory.getDM().getDriver(
								"gvSIG shp driver"),
						new File(
								"ficheros_georreferenciados/image.shp"),
						CRSFactory.getCRS("EPSG:23030"));

		// Creación de leyenda

		SingleSymbolLegend legend = (SingleSymbolLegend) LegendFactory
				.createSingleSymbolLegend(FConstant.SYMBOL_TYPE_LINE);
		FSymbol symbol = new FSymbol(FConstant.SYMBOL_TYPE_LINE, Color.RED);
		BasicStroke stroke = new BasicStroke(9);
		symbol.setStroke(stroke);
		legend.setDefaultSymbol(symbol);
		l.setLegend(legend);
		newMapControl.getMapContext().getLayers().addLayer(l);
		newMapControl.drawGraphics();

	}

	public void addLayer2() {
		FLayer l;
		try {
			l = LayerFactory
					.createLayer(
							"Vias",
							(RasterDriver) LayerFactory.getDM().getDriver(
									"gvSIG Image Driver"),
							new File(
									"ficheros_georreferenciados/image.jpg"),
							CRSFactory.getCRS("EPSG:23030"));
			newMapControl.getMapContext().getLayers().addLayer(l);
		} catch (DriverLoadException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (DriverException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public MapControl getNewMapControl() {
		return newMapControl;
	}

	public void setNewMapControl(MapControl newMapControl) {
		this.newMapControl = newMapControl;
	}
}
-- 
View this message in context: http://www.nabble.com/El-mapa-no-se-dibuja-dentro-de-un-JTabbedPane-tp20318081p20319504.html
Sent from the gvSIG desarrolladores mailing list archive at Nabble.com.




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