![]() |
|
|
|||||||
| AWT, Swing & SWT Themen zur Programmierung von Benutzer-Oberflächen (GUI, Applet) sowie zur Grafikprogrammierung (2D / 3D) |
|
|
|
Themen-Optionen | Thema durchsuchen | Ansicht |
| #1 (permalink) | |
|
Neuer Benutzer
short
Registriert seit: 20.11.2006
Beiträge: 22
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
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 ![]() 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;
}
|
|
|
| #3 (permalink) | |
|
Stammbenutzer
Halbes Megabyte
Registriert seit: 17.08.2006
Beiträge: 587
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Was mir als erstes auffällt:
Code:
myTree = new OBDComponentManagerTree(rootNode); |
|
|
|
| Lesezeichen |
Latex Maths & Physics Editor ...
|
| Themen-Optionen | Thema durchsuchen |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| paintComponent wird nicht aufgerufen | kulturfenster | Java Basics - Anfänger-Themen | 16 | 22.01.2009 23:52 |
| Methode wird endlos wiederholt | Dahakar | Allgemeine Java-Themen | 4 | 24.11.2008 20:48 |
| servicesDiscovered() wird nicht aufgerufen | IceTi | Mobile Geräte | 1 | 17.11.2008 21:35 |
| Klasse wird 2 mal aufgerufen | MScalli | Allgemeine Java-Themen | 5 | 11.03.2008 13:14 |
| set-Methode wird nie aufgerufen | schaefli | Allgemeines EE | 0 | 18.03.2007 23:26 |