Moinsen....
habe einen JTree den ich einen CellEditor mitgebe. (Ist das erstemal das ich soetwas mache )
ganzer Code: CellEditor.java
Nun besteht mein Baum nicht aus den DefaultMutableTreeNodes sondern aus einer internen
Datenstruktur.
Das Problem was sich daraus ergibt ist, wenn ich 3x auf eine Node klicke, öffnet sich zwar
das "Editier-Fenster" (wie auch immer) aber drin steht nur: de.scheller.datanode.impl.DataNode@9911ee28
hier mal zur Anschauung:
Hatte auch erst ein Problem mit dem Icon, da hat er zuerst immer das Default-Icon verwendet, das
habe ich aber dadurch behoben das ich die Methode determineOffset überschrieben habe.
Wenn man sich in dieser Methode l.getText(); ausgeben läßt, steht auch genau der Wert drin der im Baum
zu sehen ist, bevor man es editieret.
Nun meine Frage:
Welche Methode muß ich überschreiben um im "Editier-Fenster" den eigentlichen Namen zu haben
und wie kriege ich den dann in dem Baum übergeben, oder passiert das automatisch???
EDIT: VIElleicht besser gefragt, wie komme ich an das JTextfield und wie geb ich es zurück???
Vielen Dank schonmal für Eure Bemühungen....
Ulf
habe einen JTree den ich einen CellEditor mitgebe. (Ist das erstemal das ich soetwas mache )
Code:
tree.setCellEditor(new CellEditor(tree,(DefaultTreeCellRenderer)tree.getCellRenderer()));
ganzer Code: CellEditor.java
Nun besteht mein Baum nicht aus den DefaultMutableTreeNodes sondern aus einer internen
Datenstruktur.
Das Problem was sich daraus ergibt ist, wenn ich 3x auf eine Node klicke, öffnet sich zwar
das "Editier-Fenster" (wie auch immer) aber drin steht nur: de.scheller.datanode.impl.DataNode@9911ee28
hier mal zur Anschauung:
Hatte auch erst ein Problem mit dem Icon, da hat er zuerst immer das Default-Icon verwendet, das
habe ich aber dadurch behoben das ich die Methode determineOffset überschrieben habe.
Code:
protected void determineOffset
(JTree tree, Object value, boolean selected, boolean expanded,
boolean leaf, int row)
{
if (renderer != null) {
JLabel l = (JLabel)renderer.getTreeCellRendererComponent
(tree, value, selected, expanded, leaf, row,
tree.hasFocus() && tree.getLeadSelectionRow() == row);
editingIcon = l.getIcon();
if (editingIcon != null) {
offset = renderer.getIconTextGap()
+ editingIcon.getIconWidth();
} else
offset = renderer.getIconTextGap();
} else {
editingIcon = null;
offset = 0;
}
}
Wenn man sich in dieser Methode l.getText(); ausgeben läßt, steht auch genau der Wert drin der im Baum
zu sehen ist, bevor man es editieret.
Nun meine Frage:
Welche Methode muß ich überschreiben um im "Editier-Fenster" den eigentlichen Namen zu haben
und wie kriege ich den dann in dem Baum übergeben, oder passiert das automatisch???
EDIT: VIElleicht besser gefragt, wie komme ich an das JTextfield und wie geb ich es zurück???
Vielen Dank schonmal für Eure Bemühungen....
Ulf