📄 dialogcuttrack.java
字号:
package net.aetherial.gis.our.cut;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import net.aetherial.gis.garmin.*;
import net.aetherial.gis.our.*;
import net.aetherial.gis.surface.*;
public class DialogCutTrack
extends JDialog {
JPanel panel1 = new JPanel();
JComboBox jComboBox1 = new JComboBox();
XYLayout xYLayout1 = new XYLayout();
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JComboBox jComboBox2 = new JComboBox();
JLabel jLabel3 = new JLabel();
JComboBox jComboBox3 = new JComboBox();
JButton jButton1 = new JButton();
private int begin = 0,end = 0,track = 0;
FrameOur fo = null;
public DialogCutTrack(Frame owner, String title, boolean modal) {
super(owner, title, modal);
try {
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
jbInit();
pack();
}
catch (Exception exception) {
exception.printStackTrace();
}
}
public DialogCutTrack() {
this(new Frame(), "DialogCutTrack", false);
}
public DialogCutTrack(FrameOur fo) {
this(new Frame(), "DialogCutTrack", false);
this.fo = fo;
}
private void jbInit() throws Exception {
this.setTitle("选择并切割");
Dimension screenDim = Toolkit.getDefaultToolkit().getScreenSize();
this.setSize(new Dimension(390,360));
this.addWindowFocusListener(new Dialog_this_windowFocusAdapter(this));
this.setLocation(
(screenDim.width - 390) / 2,
(screenDim.height - 360) / 2
);
panel1.setLayout(xYLayout1);
jLabel1.setText("选择起始点");
jLabel2.setText("选择结束点");
jLabel3.setText("选择航迹\n(切割后,原航迹不变)");
jLabel3.setVerticalAlignment(SwingConstants.TOP);
jButton1.setText("开始切割");
jButton1.addActionListener(new DialogCutTrack_jButton1_actionAdapter(this));
jComboBox1.addItemListener(new DialogCutTrack_jComboBox_itemAdapter(this));
jComboBox2.addItemListener(new DialogCutTrack_jComboBox_itemAdapter(this));
jComboBox3.addItemListener(new DialogCutTrack_jComboBox_itemAdapter(this));
jComboBox1.setActionCommand("jComboBox1");
jComboBox2.setActionCommand("jComboBox2");
jComboBox3.setActionCommand("jComboBox3");
getContentPane().add(panel1);
panel1.add(jLabel1, new XYConstraints(20, 17, 112, 25));
panel1.add(jLabel2, new XYConstraints(20, 66, 111, 28));
panel1.add(jComboBox2, new XYConstraints(117, 71, 132, -1));
panel1.add(jComboBox3, new XYConstraints(117, 130, 150, -1));
panel1.add(jComboBox1, new XYConstraints(117, 18, 132, -1));
panel1.add(jButton1, new XYConstraints(95, 191, -1, -1));
panel1.add(jLabel3, new XYConstraints(20, 132, 86, 47));
this.initData();
}
public void initData(){
int[] pos = ItemValue.getPosition("waypoint");
if(pos!=null){
for (int i = 0;i<pos.length;i++){
jComboBox1.addItem(ItemValue.getWaypointName(ItemValue.getWaypointByWaypointPos(i)));
jComboBox2.addItem(ItemValue.getWaypointName(ItemValue.getWaypointByWaypointPos(i)));
}
}
int[] pos1 = ItemValue.getPosition("track");
if(pos1!=null){
for (int i = 0;i<pos1.length;i++){
jComboBox3.addItem(ItemValue.getTracksName(ItemValue.getTracksByPos(i)));
}
}
}
public void jComboBox_itemStateChanged(ItemEvent e) {
//System.out.println((JComboBox)e.getSource());
if((JComboBox)e.getSource()==jComboBox1){
this.begin =jComboBox1.getSelectedIndex();
System.out.println("jComboBox1|Select:"+jComboBox1.getSelectedIndex()+"|"+jComboBox1.getSelectedItem());
}else if((JComboBox)e.getSource()==jComboBox2){
this.end =jComboBox2.getSelectedIndex();
System.out.println("jComboBox2|Select:"+jComboBox2.getSelectedIndex()+"|"+jComboBox2.getSelectedItem());
}else if((JComboBox)e.getSource()==jComboBox3){
this.track =jComboBox3.getSelectedIndex();
System.out.println("jComboBox3|Select:"+jComboBox3.getSelectedIndex()+"|"+jComboBox3.getSelectedItem());
}
}
public void jButton1_actionPerformed(ActionEvent e) {
if (GarminGMLDoc.root == null) {
System.out.println("GarminGMLDoc.root == null || at line 113 in DialogCutTrack");
this.hide();
return;
}else{
CutToSection cts = new CutToSection();
cts.setTrack(ItemValue.getTracksByPos(this.track));
cts.setStartEnd(ItemValue.getWaypointByWaypointPos(this.begin),ItemValue.getWaypointByWaypointPos(this.end));
//try {
cts.insertIntoGarminDoc();
//}
//catch (NoElementException ex) {
// this.hide();
// JOptionPane.showMessageDialog(fo,"没有发现与之相近的点!");
//}catch(NullPointerException ex){
// System.out.println("NullPointerException at 122 in DialogCutTrack");
//}
System.out.println("CutToSection ok! || at line 121 in DialogCutTrack");
fo.memoryShow(true,false);
this.hide();
}
}
}
class Dialog_this_windowFocusAdapter
implements WindowFocusListener {
private Dialog adaptee;
Dialog_this_windowFocusAdapter(Dialog adaptee) {
this.adaptee = adaptee;
}
public void windowGainedFocus(WindowEvent e) {
}
public void windowLostFocus(WindowEvent e) {
adaptee.toFront();
}
}
class DialogCutTrack_jButton1_actionAdapter
implements ActionListener {
private DialogCutTrack adaptee;
DialogCutTrack_jButton1_actionAdapter(DialogCutTrack adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
class DialogCutTrack_jComboBox_itemAdapter
implements ItemListener {
private DialogCutTrack adaptee;
DialogCutTrack_jComboBox_itemAdapter(DialogCutTrack adaptee) {
this.adaptee = adaptee;
}
public void itemStateChanged(ItemEvent e) {
adaptee.jComboBox_itemStateChanged(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -