📄 bestroadjframe.java
字号:
jSplitPane2.setDividerLocation((int)(this.getWidth()*0.75));
jSplitPane4.setDividerLocation(200);
}*/
private void initAction()
{
setItem11Action();
setItem12Action();
setItem13Action();
setItem14Action();
}
private void setItem11Action()
{
javax.swing.Action _panAction = zoomPanToolBar1.getActions().getAction(3);
momenuitem11.setAction(_panAction);
momenuitem11.setIcon(null);
momenuitem11.setText("全景");
}
private void setItem12Action()
{
javax.swing.Action _panAction = zoomPanToolBar1.getActions().getAction(4);
momenuitem12.setAction(_panAction);
momenuitem12.setIcon(null);
momenuitem12.setText("放大");
}
private void setItem13Action()
{
javax.swing.Action _panAction = zoomPanToolBar1.getActions().getAction(5);
momenuitem13.setAction(_panAction);
momenuitem13.setIcon(null);
momenuitem13.setText("缩小");
}
private void setItem14Action()
{
javax.swing.Action _panAction = zoomPanToolBar1.getActions().getAction(6);
momenuitem14.setAction(_panAction);
momenuitem14.setIcon(null);
momenuitem14.setText("漫游");
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==momenuitem21) //最优路径分析
{
}
else if(e.getSource()==momenuitem22) //追踪分析
{
}
else if(e.getSource()==jButton1) //“创建拓扑”按钮
{
if(topTag==0)
{
if(timer!=null)
{
timer.stop();
timer=null;
}
jProgressBar1.setMinimum(0);
jProgressBar1.setMaximum(10);
jProgressBar1.setValue(0);
try {
flayer1 = (com.esri.mo2.map.dpy.FeatureLayer) map1.getLayer(
"roadc_cur");
jProgressBar1.setValue(2);
createTop top1 = new createTop(map1, flayer1); //创建拓扑关系
jProgressBar1.setValue(6);
lNum = top1.getLineNum(); //获取线的条数
pNum = top1.getPointNum(); //获取点的个数
rLine = new LineBean[lNum]; //给线数组分配空间
for (int i = 0; i < lNum; i++) {
rLine[i] = new LineBean();
}
jProgressBar1.setValue(8);
rLine = top1.getLine(); //获取线集
pointID = new int[pNum]; //给点数组分配空间
pointID = top1.getPointID(); //获取点集
pointCoord=new com.esri.mo2.cs.geom.Point[pNum];
pointCoord=top1.getPointCoord();
//pointID_arrayList = top1.getPointIdList();
adjacencyTable=new boolean[pNum][lNum];
adjacencyTable=top1.getAdjacencyTable();
topTag=1;
jProgressBar1.setValue(10);
} catch (Exception e1) {
e1.printStackTrace();
}
jProgressBar1.setValue(0);
JLabel lblMessage = new JLabel("拓扑关系成功建立!");
lblMessage.setFont(new Font("宋体",Font.BOLD,16));
JOptionPane.showMessageDialog(null,lblMessage,"提示:",JOptionPane.DEFAULT_OPTION);
}
else
{
JLabel lblMessage = new JLabel("拓扑关系已经建立,无需重复建立!");
lblMessage.setFont(new Font("宋体",Font.BOLD,16));
JOptionPane.showMessageDialog(null,lblMessage,"提示:",JOptionPane.DEFAULT_OPTION);
}
}
else if(e.getSource()== jButton2) //“开始设置起点和终点”按钮
{
if(timer!=null)
{
timer.stop();
timer=null;
}
if(topTag==1)
{
map1.setSelectedTool(null);
flayer1.setSelectionSet(null);
setBEPointTag = true;
completeSpSetTag = false;
completeEpSetTag = false;
jTextArea1.setText("");
jTextArea2.setText("");
jTextArea1.setEditable(true);
jTextArea2.setEditable(true);
calBestroadTag = 0;
displayBestroadTag=0;
}
else
{
JLabel lblMessage = new JLabel("请先建立拓扑关系,然后才能执行该操作!");
lblMessage.setFont(new Font("宋体",Font.BOLD,16));
JOptionPane.showMessageDialog(null,lblMessage,"提示:",JOptionPane.DEFAULT_OPTION);
}
}
else if(e.getSource()== jButton3) //“设置起点与终点提交”按钮
{
if(timer!=null)
{
timer.stop();
timer=null;
}
String spText=jTextArea1.getText();
String epText=jTextArea2.getText();
spText=spText.substring(3);
epText=epText.substring(3);
if(spText.equals(epText))
{
jTextArea1.setEditable(true);
jTextArea1.setText("");
jTextArea2.setEditable(true);
jTextArea2.setText("");
completeSpSetTag=false;
completeEpSetTag =false;
JLabel lblMessage = new JLabel("起点与终点为同一个点!请重新设置!");
lblMessage.setFont(new Font("宋体", Font.BOLD, 16));
JOptionPane.showMessageDialog(null, lblMessage, "提示:",JOptionPane.DEFAULT_OPTION);
}
else
{
map1.setSelectedTool(null);
if(completeSpSetTag==true && completeEpSetTag == true){
JLabel lblMessage = new JLabel("提交成功!");
lblMessage.setFont(new Font("宋体", Font.BOLD, 16));
JOptionPane.showMessageDialog(null, lblMessage, "提示:",JOptionPane.DEFAULT_OPTION);
setBEPointTag = false;
completeSpSetTag = true;
completeEpSetTag = true;
StartPAndEndPTag=1;
jTextArea1.setEditable(false);
jTextArea2.setEditable(false);
}
else{
JLabel lblMessage = new JLabel("起点和终点设置不成功,请设置完整!");
lblMessage.setFont(new Font("宋体", Font.BOLD, 16));
JOptionPane.showMessageDialog(null, lblMessage, "提示:",JOptionPane.DEFAULT_OPTION);
//setBEPointTag = true;
StartPAndEndPTag=0;
}
}
}
else if(e.getSource()== jButton4) //“计算路径”按钮
{
if(StartPAndEndPTag==1)
{
if(timer!=null)
{
timer.stop();
timer=null;
}
flayer1.setSelectionSet(null);
shortCut shortcut = new shortCut();
shortcut.setLine(rLine);
shortcut.setPointID(pointID);
//shortcut.setOriginPointIDArrayList(pointID_arrayList);
shortcut.setStartAndEndPointID(startPointID, endPointID);
shortcut.setAdjacencyTable(adjacencyTable);
shortcut.setPointCoord(pointCoord);
//int roadNum=shortcut.getBestRoadLineNum();
//bestroadLine=new int[roadNum];
bestroadLine = shortcut.getBestRoad();
calBestroadTag = 1;
}
else
{
JLabel lblMessage = new JLabel("请先完成以上的几步操作后,再执行该操作!");
lblMessage.setFont(new Font("宋体", Font.BOLD, 16));
JOptionPane.showMessageDialog(null, lblMessage, "提示:",JOptionPane.DEFAULT_OPTION);
calBestroadTag = 0;
}
}
else if(e.getSource()== jButton5) //“成果显示”按钮
{
if(calBestroadTag==1)
{
if(timer!=null)
{
timer.stop();
timer=null;
}
IDtoSelection toSelection = new IDtoSelection();
SelectionSet selectionset = toSelection.convertSelectionSet(flayer1, rLine, bestroadLine);
flayer1.setSelectionSet(selectionset);
//flashPath=new FlashPath(flayer1,selectionset);
//timer = new Timer(200, flashPath);
//timer.start();
flayer1.setSelectionColor(Color.red);
displayBestroadTag=1;
}
else
{
JLabel lblMessage = new JLabel("请先完成以上的几步操作后,再执行该操作!");
lblMessage.setFont(new Font("宋体", Font.BOLD, 16));
JOptionPane.showMessageDialog(null, lblMessage, "提示:",JOptionPane.DEFAULT_OPTION);
displayBestroadTag=0;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -