Hallo zusammen,
ich habe ein Problem mit meinem JTree:
Ich füge in meinen JTree mit setUserObject() Objekte ein,
bei denen kann ich dann auch auf alle Methoden zugreifen. --> soweit alles wunderbar.
Mein Problem:
Später möchte ich per Doppelklick wieder auf die Objekte (also auf ihre Methoden zugreifen)
--> Die Objekte werden aber nicht mehr als Instanz meiner Objektklasse erkannt !!!!
2. Codeabschnitt Zeilen 27-37 if instanceof immer false !!
Was mache ich falsch??
Danke für jegliche Hilfe / Anregungen
ich habe ein Problem mit meinem JTree:
Ich füge in meinen JTree mit setUserObject() Objekte ein,
bei denen kann ich dann auch auf alle Methoden zugreifen. --> soweit alles wunderbar.
Mein Problem:
Später möchte ich per Doppelklick wieder auf die Objekte (also auf ihre Methoden zugreifen)
--> Die Objekte werden aber nicht mehr als Instanz meiner Objektklasse erkannt !!!!
2. Codeabschnitt Zeilen 27-37 if instanceof immer false !!
Was mache ich falsch??
Danke für jegliche Hilfe / Anregungen
Code:
import javax.swing.tree.TreePath;
public class RSComponentObject {
public static int Index = 0;
public static String Name = "";
public static int Type = 99;
public static float[] Data = new float[16];
public static boolean[] Variable = new boolean[4];
public static String FileHost = "";
public static int PartType = 99;
public static TreePath Path = null;
public RSComponentObject(){
} // end constructor RSComponentObject()
public RSComponentObject(int index){
Index = index;
////////////////// u.s.w. --> weitere Konstruktoren
public final void setIndex(int index){
Index = index;
} // end setIndex
public final void setName(String name){
Name = name;
} // end setName
////////////////// u.s.w. --> weitere Methoden get
public final int getIndex(){
return Index;
} // end getIndex
public final String getName(){
return Name;
} // end getName
////////////////// u.s.w. --> weitere Methodenset
@Override
public final String toString(){
return Name;
} // end toString
} // end class RSComponentObject
Code:
public class RSComponentObject {
/////............................../////
tree.addTreeSelectionListener(new TreeSelectionListener(){
public void valueChanged (TreeSelectionEvent e){
path = e.getNewLeadSelectionPath();
}
});
MouseListener mouseListener = new MouseAdapter() {
public void mousePressed(MouseEvent e) {
int row = tree.getRowForLocation(e.getX(), e.getY());
if(row != -1) {
if(e.getClickCount() == 2) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent();
Object object = node.getUserObject();
RSComponentObject component = new RSComponentObject();
if (object instanceof RSComponentObject){
component = (RSComponentObject)node.getUserObject();
selectedComponentType = component.getType();
actualData = component.getData();
actualVariable = component.getVariable();
actualName = component.getName();
actualFileHost = component.getFileHost();
actualPartType = component.getPartType();
///// do something ///////// }
}
}
}
};
tree.addMouseListener(mouseListener);
///////////.....................//////////////
public static void vNewComponent(){
// Tree
DefaultMutableTreeNode node = new DefaultMutableTreeNode ();
DefaultMutableTreeNode parent = new DefaultMutableTreeNode ();
Object object = path.getLastPathComponent();
parent = (DefaultMutableTreeNode) object;
switch (selectedComponentType){
case(0):{
RSComponentObject local = new RSComponentObject(actualName);
local.setType(selectedComponentType);
local.setName(actualName);
local.setData(actualData);
local.setVariable(actualVariable);
node.setUserObject(local.toString());
// Icon ändern
break;
}
////////////// other cases////////////////////
default:{
break;
}
}
model.insertNodeInto(node, parent, parent.getChildCount());
tree.repaint();
} // end vNewComponent
} // end class RSMain