In meinen Proejct habe ich einen JTree denn ich momentan mit der "Hammer Methode" komplett ersetzte, das ist soweit auch nicht das problem.
Das Problem ist sobald ich neue elemente hinzufüge, und damit auch die Tree Ersetzen Methode aufrufe. und dann einmal doppelclicke in meinen Baum wird der Mouse Listener immer mehrfach aufgerufen, je nachdem wie viele objecte ich vorher hinzugefügt habe. es besteht also auf jedenfall ein zusammenhang, ich kann mir das aber nicht so recht erklären, es scheint mir fast so als ob jedesmal wenn ich den Baum ersetzte er nur darübergelegt wird und sobald ich drauf doppelt clicke führt er es für alle auf, aber ich kann mir nicht erklären wieso es überhaupt mehrere instanzen meines Trees geben sollte.
versteht ihr was ich meine? Es ist etwas schwierig zu beschreiben.
Auf jedenfall wird bei einem doppelclick alles im mouselistener n* aufgerufen, wobei n die anzahl meiner hinzugefügten Objekte+1 entspricht.
Any help would be much appreciated
Das Problem ist sobald ich neue elemente hinzufüge, und damit auch die Tree Ersetzen Methode aufrufe. und dann einmal doppelclicke in meinen Baum wird der Mouse Listener immer mehrfach aufgerufen, je nachdem wie viele objecte ich vorher hinzugefügt habe. es besteht also auf jedenfall ein zusammenhang, ich kann mir das aber nicht so recht erklären, es scheint mir fast so als ob jedesmal wenn ich den Baum ersetzte er nur darübergelegt wird und sobald ich drauf doppelt clicke führt er es für alle auf, aber ich kann mir nicht erklären wieso es überhaupt mehrere instanzen meines Trees geben sollte.
versteht ihr was ich meine? Es ist etwas schwierig zu beschreiben.
Auf jedenfall wird bei einem doppelclick alles im mouselistener n* aufgerufen, wobei n die anzahl meiner hinzugefügten Objekte+1 entspricht.
Any help would be much appreciated
Code:
private void TreeErsetzen(){
//myTree = new OBDComponentManagerTree(rootNode);
ComponentManagerModel = new DefaultTreeModel(rootNode);
jTree3.setModel(ComponentManagerModel);
jTree3.setRootVisible(false);
jTree3.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
jTree3.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
System.out.println(e.getPath().getPathComponent(e.getPath().getPathCount()-1).toString());
setClickedWhat(e.getPath().getPathComponent(e.getPath().getPathCount()-1).toString());
setSelectedObject(((DefaultMutableTreeNode)e.getPath().getLastPathComponent()).getUserObject());
setSelectedDepth(e.getPath().getPathCount());
setClickedWhat(e.getPath());
}
});
jTree3.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
if(e.getClickCount()==2){
boolean check=false;
System.out.println("click "+clickedWhat);
System.out.println("clicked Depth "+clickedDepth);
System.out.println("what am i:"+clickedWhatObject.toString());
if(clickedWhatS.equals("Detectors")||clickedWhatS.equals("Light Sources")||clickedWhatS.equals("Waveguides")){
check=true;
} else{
check=false;
}
if(!check){
if(clickedWhatS.substring(0,5).equals("Detec")){
startDetectorDialog(clickedWhatObject);
} else if(clickedWhat.equals("Layer (Lay)")){
// myOBD.startLayerDialog();
} else if(clickedWhat.equals("Parent (PW)")){
// myOBD.startWaveguideDialog(true);
} else if(clickedWhat.equals("Branch (BW)")){
// myOBD.startWaveguideDialog(false);
} else if(clickedWhat.equals("Line (LS)")){
// myOBD.startLineDialog();
} else if(clickedWhat.equals("Bend (BS)")){
// myOBD.startBendDialog();
}
}
}
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
});
render = new OBDComponentManagerTreeRenderer();
jTree3.setCellRenderer(render);
//TODO
for (int i = 0; i < jTree3.getRowCount(); i++) {
jTree3.expandRow(i);
//System.out.println("row "+i+" expanded");
}
//ComponentManagerModel.reload();
//jTree3 = myTree;
}