import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import com.esri.arcgis.beans.toolbar.ToolbarBean;
import com.esri.arcgis.beans.map.MapBean;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.io.IOException;
import java.net.UnknownHostException;
import com.esri.arcgis.beans.TOC.TOCBean;
import com.esri.arcgis.carto.IActiveView;
import com.esri.arcgis.carto.IElement;
import com.esri.arcgis.carto.IFillShapeElement;
import com.esri.arcgis.carto.IGraphicsContainer;
import com.esri.arcgis.carto.ILineElement;
import com.esri.arcgis.carto.IRectangleElement;
import com.esri.arcgis.carto.RectangleElement;
import com.esri.arcgis.carto.esriViewDrawPhase;
import com.esri.arcgis.controls.IMapControlEvents2OnExtentUpdatedEvent;
import com.esri.arcgis.display.IFillSymbol;
import com.esri.arcgis.display.ILineSymbol;
import com.esri.arcgis.display.IRgbColor;
import com.esri.arcgis.display.RgbColor;
import com.esri.arcgis.display.SimpleFillSymbol;
import com.esri.arcgis.display.SimpleLineSymbol;
import com.esri.arcgis.geometry.IEnvelope;
import com.esri.arcgis.geometry.IEnvelope2;
import com.esri.arcgis.geometry.IPoint;
import com.esri.arcgis.geometry.Point;
import com.esri.arcgis.interop.AutomationException;
import java.awt.GridBagConstraints;
public class yingyan extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private ToolbarBean Toolbar = null;
private MapBean Map = null;
private JPanel jPanel = null;
private TOCBean TOC = null;
private MapBean Mapview = null;
private JPanel jPanel1 = null;
private JPanel jPanel2 = null;
/**
* This method initializes Toolbar
*
* @return com.esri.arcgis.beans.toolbar.ToolbarBean
*/
private ToolbarBean getToolbar() {
if (Toolbar == null) {
Toolbar = new ToolbarBean();
Toolbar.setItemsString("5|controls/ControlsOpenDocCommand|0|-1|0|0|1;5|controls/ControlsAddDataCommand|0|-1|0|0|1;11|controls/ControlsMapZoomInFixedCommand|0|-1|0|0|1;11|controls/ControlsMapZoomOutFixedCommand|0|-1|0|0|1;11|controls/ControlsMapFullExtentCommand|0|-1|0|0|1;11|controls/ControlsMapZoomInTool|0|-1|0|0|1;11|controls/ControlsMapZoomOutTool|0|-1|0|0|1;10|controls/ControlsMapIdentifyTool|0|-1|0|0|1");
try {
Toolbar.setBuddyControl(getMap());
} catch (IOException e) {
e.printStackTrace();
}
}
return Toolbar;
}
/**
* This method initializes Map
*
* @return com.esri.arcgis.beans.map.MapBean
*/
private MapBean getMap() {
if (Map == null) {
Map = new MapBean();
try {
Map.setDocumentFilename("F:\\me.mxd");
Map
.addIMapControlEvents2Listener(new com.esri.arcgis.controls.IMapControlEvents2Adapter() {
public void onMapReplaced(
com.esri.arcgis.controls.IMapControlEvents2OnMapReplacedEvent e) {
try {
Mapview.loadMxFile(Map.getDocumentFilename(), null, null);
Mapview.setExtent(Map.getFullExtent());
} catch (AutomationException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
Map .addIMapControlEvents2Listener(new com.esri.arcgis.controls.IMapControlEvents2Adapter() {
public void onExtentUpdated(com.esri.arcgis.controls.IMapControlEvents2OnExtentUpdatedEvent e) {
IEnvelope pEnv=(IEnvelope) e.getNewEnvelope();
try {
IGraphicsContainer pGra=(IGraphicsContainer) Mapview.getMap();
IActiveView pAc=(IActiveView) pGra;
pGra.deleteAllElements();
IRectangleElement pRelement=new RectangleElement();
IElement pElement=(IElement) pRelement;
pElement.setGeometry(pEnv);
IRgbColor pRgb=new RgbColor();
pRgb.setRed(255);
pRgb.setGreen(0);
pRgb.setBlue(0);
pRgb.setTransparency((byte) 255);
ILineSymbol pLineSymbol=new SimpleLineSymbol(); //红线框
pLineSymbol.setColor(pRgb);
pLineSymbol.setWidth(2);
pRgb=new RgbColor();
pRgb.setTransparency((byte) 0);
IFillSymbol pFillSymbol=new SimpleFillSymbol();
pFillSymbol.setOutline(pLineSymbol);
pFillSymbol.setColor(pRgb);
IFillShapeElement pFillShapeEle=(IFillShapeElement) pElement;
pFillShapeEle.setSymbol(pFillSymbol);
pGra.addElement((IElement) pFillShapeEle, 0);
pAc.partialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
} catch (AutomationException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
return Map;
}
/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.setPreferredSize(new Dimension(150, 0));
jPanel.setLayout(new BorderLayout());
jPanel.add(getJPanel1(), BorderLayout.CENTER);
jPanel.add(getJPanel2(), BorderLayout.SOUTH);
}
return jPanel;
}
/**
* This method initializes TOC
*
* @return com.esri.arcgis.beans.TOC.TOCBean
*/
private TOCBean getTOC() {
if (TOC == null) {
TOC = new TOCBean();
try {
TOC.setBuddyControl(getMap());
} catch (IOException e) {
e.printStackTrace();
}
}
return TOC;
}
void initializeArcGISLicenses() {
try {
com.esri.arcgis.system.AoInitialize ao = new com.esri.arcgis.system.AoInitialize();
if (ao.isProductCodeAvailable(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeEngine) == com.esri.arcgis.system.esriLicenseStatus.esriLicenseAvailable)
ao.initialize(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeEngine);
else if (ao.isProductCodeAvailable(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeArcEditor) == com.esri.arcgis.system.esriLicenseStatus.esriLicenseAvailable)
ao.initialize(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeArcEditor);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* This method initializes Mapview
*
* @return com.esri.arcgis.beans.map.MapBean
*/
private MapBean getMapview() {
if (Mapview == null) {
Mapview = new MapBean();
try {
Mapview .addIMapControlEvents2Listener(new com.esri.arcgis.controls.IMapControlEvents2Adapter() {
public void onMouseDown(
com.esri.arcgis.controls.IMapControlEvents2OnMouseDownEvent e) {
try {
IPoint pPoint=new Point();
pPoint.putCoords(e.getMapX(),e.getMapY());
Map.centerAt(pPoint);
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
/* try {
Mapview.clearLayers();
for(int i=0;i<Map.getActiveView().getFocusMap().getLayerCount()-1;i++)
{
Mapview.addLayer(Map.getLayer(i),i);
}
Mapview.getActiveView().refresh();
} catch (AutomationException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
try {
Mapview.loadMxFile(Map.getDocumentFilename(), null, null);
Mapview.setExtent(Map.getFullExtent());
} catch (AutomationException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}*/
}
return Mapview;
}
/**
* This method initializes jPanel1
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel1() {
if (jPane