📄 dynamictree.java
字号:
public String getRowValue(int row) {
int count = rootNode.getChildCount();
if (count > 1) {
}
return rootNode.getChildAt(row).toString();
}
public Object getRowObject(Object parent, int index) {
return "";
}
public void setSelectedTreeItem(boolean tracks, int pos) {
int row = 0;
if (tracks) {
tree.expandRow(1);
row = pos + 2;
}
else {
if (tree.isExpanded(1)) {
tree.expandRow(2 + ItemValue.tracksNum);
row = pos + 3 + ItemValue.tracksNum;
}
else {
tree.expandRow(2);
row = pos + 3;
}
}
tree.setSelectionRow(row);
}
public void getRow(KeyEvent e, int alt) {
int selectedRow = 0;
if ( (e.getKeyCode() == KeyEvent.VK_UP) ||
(e.getKeyCode() == KeyEvent.VK_DOWN)) {
// System.out.print("KeyEvent:"+this.tree.getSelectionCount());
int[] i = tree.getSelectionRows();
//
if (e.getKeyCode() == KeyEvent.VK_UP) {
selectedRow = i[0] - 1;
if (selectedRow < 0) {
selectedRow = 0;
}
}
else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
//这里要写好:情况一,当到达航点时,会不会产生n和n+1;二,进入航点末尾产生n和n+1;
selectedRow = i[0] + 1;
if (selectedRow >= tree.getRowCount()) {
selectedRow = selectedRow - 1;
}
}
if (tree.isCollapsed(1)) {
selectedRow = selectedRow + ItemValue.tracksNum;
}
//System.out.println(selectedRow);
MyTreeModelListener mtml = new MyTreeModelListener(this);
if (mtml.ifTracks(selectedRow)) {
if (fmUse) {
fm.jTabbedPane1.setSelectedIndex(0);
fm.setTrack(mtml.setPos(selectedRow));
// fo.drawALine(mtml.setPos(selectedRow));
}
}
else {
if (fmUse) {
fm.jTabbedPane1.setSelectedIndex(1);
fm.setIsInitTrue();
fm.setWaypoint(mtml.setPos(selectedRow));
}
}
//for(int i=0;i<test.length;i++){
//System.out.println("test:"+selectedRow);
//}
}
else if ( (e.getKeyChar() == 's') && alt != -1) {
CLFrame clf = new CLFrame(this.thisNode);
clf.setFm(this.fm);
clf.setFo(this.fo);
if (this.fm != null) {
this.fm.setCLFrame(clf);
}
}
else if ( (e.getKeyChar() == 'd') && alt != -1) {
if (fmUse) {
fm.jButton14_actionPerformed(null);
}
}
// System.out.println("e.getKeyChar():" + e.getKeyChar() + ",alt:" + alt);
//this.tree.getSelectionCount();
}
void jMenuItem_actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("Delete_Waypoint")) {
if (fmUse) {
fm.jButtonWaypointDelete_actionPerformed(e);
}
}
else if (e.getActionCommand().equals("Fresh_Waypoint")) {
if (fmUse) {
fm.memoryShow();
}
this.expandTree(false);
}
else if (e.getActionCommand().equals("Delete_Tracks")) {
if (fmUse) {
fm.jButton14_actionPerformed(e);
}
}
else if (e.getActionCommand().equals("Fresh_Tracks")) {
if (fmUse) {
fm.memoryShow();
}
this.expandTree(true);
}
else if (e.getActionCommand().equals("CutAndLink")) {
CLFrame clf = new CLFrame(this.thisNode);
clf.setFm(this.fm);
clf.setFo(this.fo);
if (this.fm != null) {
this.fm.setCLFrame(clf);
}
}
else if (e.getActionCommand().equals("Create_Excel")) {
if (fmUse) {
fm.jButton17_actionPerformed(e);
}
}
else if (e.getActionCommand().substring(0, 11).equals("Show_Tracks")) {
int pos = Integer.parseInt(e.getActionCommand().substring(11,
e.getActionCommand().length()));
if (fmUse) {
fm.jTabbedPane1.setSelectedIndex(0);
fm.setTrack(pos);
}
}
else if (e.getActionCommand().substring(0, 13).equals("Show_Waypoint")) {
int pos = Integer.parseInt(e.getActionCommand().substring(13,
e.getActionCommand().length()));
if (fmUse) {
fm.jTabbedPane1.setSelectedIndex(1);
fm.setIsInitTrue();
fm.setWaypoint(pos);
}
}
else if (e.getActionCommand().substring(0, 18).equals("Waypoint_To_Tracks")) {
int pos = Integer.parseInt(e.getActionCommand().substring(18,
e.getActionCommand().length()));
ItemValue.setWaypointTracksID(thisNode,
ItemValue.getTracksID(ItemValue.
getTracks(pos)));
}
else if (e.getActionCommand().substring(0,
23).equals(
"Tracks_Include_Waypoint")) {
int pos = Integer.parseInt(e.getActionCommand().substring(23,
e.getActionCommand().length()));
ItemValue.setWaypointTracksID(ItemValue.getWaypoint(pos),
ItemValue.getTracksID(thisNode));
//System.out.println(thisNode);
}
//Waypoint_To_Tracks Tracks_Include_Waypoint
//System.out.println("This is :");
}
class MyTreeModelListener
extends java.awt.event.MouseAdapter implements TreeModelListener {
//JPopupMenu popup =super;
DynamicTree dynamicTree = null;
public MyTreeModelListener(DynamicTree dynamicTree) {
this.dynamicTree = dynamicTree;
}
public void treeNodesChanged(TreeModelEvent e) {
DefaultMutableTreeNode node;
node = (DefaultMutableTreeNode)
(e.getTreePath().getLastPathComponent());
/*
* If the event lists children, then the changed
* node is the child of the node we've already
* gotten. Otherwise, the changed node and the
* specified node are the same.
*/
try {
int index = e.getChildIndices()[0];
node = (DefaultMutableTreeNode)
(node.getChildAt(index));
}
catch (NullPointerException exc) {}
System.out.println("The user has finished editing the node.");
System.out.println("New value: " + node.getUserObject());
}
public void treeNodesInserted(TreeModelEvent e) {
}
public void treeNodesRemoved(TreeModelEvent e) {
}
public void treeStructureChanged(TreeModelEvent e) {
}
public void mouseClicked(MouseEvent e) {
/*
//System.out.println("X:"+e.getX()+",Y:"+e.getY());
int selRow = tree.getRowForLocation(e.getX(), e.getY());
//TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
//System.out.println("selRow:"+selRow);
if(!(tree.isExpanded(1))){
selRow=selRow+ItemValue.tracksNum;
}
if(ifTracks(selRow)){
fm.jTabbedPane1.setSelectedIndex(0);
fm.setTrack(setPos(selRow));
}else{
fm.jTabbedPane1.setSelectedIndex(1);
fm.setWaypoint(setPos(selRow));
}
*/
}
public int setPos(int row) {
if (row <= 1) {
return 0;
}
if (row < (ItemValue.tracksNum + 2)) {
return row - 2;
}
if (row == (ItemValue.tracksNum + 2)) {
return 0;
}
if (row > (ItemValue.tracksNum + 2)) {
return (row - (ItemValue.tracksNum + 3));
}
return 1;
}
public boolean ifTracks(int row) {
// System.out.println("ItemValue.tracksNum+1:"+(ItemValue.tracksNum+1));
if (row <= (ItemValue.tracksNum + 1)) {
return true;
}
else {
return false;
}
}
public void mousePressed(MouseEvent e) {
//maybeShowPopup(e);
}
public void mouseReleased(MouseEvent e) {
maybeShowPopup(e);
}
private void maybeShowPopup(MouseEvent e) {
/////////////////////////////////////////////
int selRow = tree.getRowForLocation(e.getX(), e.getY());
int tracksWaypointPos = selRow;
TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
if (! (tree.isExpanded(1))) {
tracksWaypointPos = tracksWaypointPos + ItemValue.tracksNum;
}
if (ifTracks(tracksWaypointPos)) {
if (dynamicTree.fmUse) {
fm.jTabbedPane1.setSelectedIndex(0);
fm.setTrack(setPos(tracksWaypointPos));
}
}
else {
if (dynamicTree.fmUse) {
fm.jTabbedPane1.setSelectedIndex(1);
fm.setIsInitTrue();
fm.setWaypoint(setPos(tracksWaypointPos));
}
}
//row = selRow;
//System.out.println(selRow);
///////////////////////////////////////
tree.setSelectionRow(selRow);
///////////////////////////////////////
if ( ( ( (e.isPopupTrigger()) && (selRow >= (ItemValue.tracksNum + 3))) &&
(tree.isExpanded(1))) ||
( ( (e.isPopupTrigger()) && (selRow >= 3)) && (! (tree.isExpanded(1))))) {
dynamicTree.thisNode = ItemValue.getWaypoint(setPos(tracksWaypointPos));
//System.out.println(thisNode);
jMenuItem3.setText("删除航点" +
ItemValue.getWaypointName(setPos(tracksWaypointPos))+"(D)");
addTracksToJMenu3(setPos(tracksWaypointPos));
//jMenuItem4.setText("刷新 ID:"+ItemValue.getWaypointTracksID(setPos(tracksWaypointPos)));
jPopupMenu1.show(e.getComponent(),
e.getX(), e.getY());
}
else if ( (e.isPopupTrigger()) && (selRow >= 2) &&
(ItemValue.tracksNum > 0) && (tree.isExpanded(1))) {
//this.
//dynamicTree.thisNode =null;
//dynamicTree.track =
dynamicTree.thisNode = ItemValue.getTracksByPos(setPos(
tracksWaypointPos));
System.out.println(ItemValue.getTracksName(setPos(tracksWaypointPos)));
jMenuItem5.setText("删除航迹" +
ItemValue.getTracksName(setPos(tracksWaypointPos))+"(D)");
addTracksToJMenu4(setPos(tracksWaypointPos));
//jMenuItem6.setText("刷新 ID:"+ItemValue.getTracksID(setPos(tracksWaypointPos)));
jPopupMenu2.show(e.getComponent(),
e.getX(), e.getY());
if (dynamicTree.foUse) {
jMenuItem6.setText(" 刷 新 " +
ItemValue.getTracksPoint(ItemValue.
getTracksByPos(setPos(tracksWaypointPos))).getLength());
}
}
}
}
}
class treeKeyAdapter
extends java.awt.event.KeyAdapter {
DynamicTree adaptee;
private int alt = -1;
treeKeyAdapter(DynamicTree adaptee) {
this.adaptee = adaptee;
}
public void keyPressed(KeyEvent e) {
// System.out.println("keyPress:" + e.getKeyChar());
if (e.getModifiers() == 8) {
alt = 8;
}
else {
adaptee.getRow(e, alt);
}
}
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ALT) {
alt = -1;
}
}
}
class PopupMenu_jMenuItem_actionAdapter
implements java.awt.event.ActionListener {
DynamicTree adaptee;
PopupMenu_jMenuItem_actionAdapter(DynamicTree adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuItem_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -