X extends TreeView - eigene Methoden

  • Themenstarter Themenstarter pr
  • Beginndatum Beginndatum

pr

Mitglied
Hi,
ich hab eine eigene Implementation von TreeView und würde gern eine Methode, die public ist, hinzufügen, damit MyTree x = new MyTree(); x.customMethod(); möglich ist...
Sieht so aus, als würde das Interface von TreeView das nicht zulassen.
Wie geht ich das am besten an? Es wäre sehr hübsch, eine eigene Methode zu haben. Als Alternative fiel mir bisher ein
  • Eine statischte Methode in einer Utility-Klasse
  • Eine Wrapper-Klasse um das TreeView-Objekt
Vll gibts noch eine bessere Lösung? 😉

Danke
 
Java:
MyTreeView implements TreeView {
    ...
    void customMethod() {}
}
Oder was ist das Problem?
 
Wenn du TreeView erweiterst, müsste es, wie @looparda sagt gehen (auch wenn du statt implements natürlich extends verwenden musst 🙂 ).
Verstehe das Problem daher auch nicht.

Noch eine Frage: Warum machst du dass? Was gewinnst du, wenn du den TreeView erweiterst? Ich verwende jetzt schon eine ganze Weile (seit ca. 5 Jahren - Pi-Mal-Daumen) JavaFX und bin nur sehr selten, z.B. bei Custom Components, in die Situation gekommen, ein Control von JavaFX zu erweitern. Und wenn, dann waren es meist Layouts (HBox, StackPane, Pane, ...).
 
Ich weiß nicht um welches Package es geht. Vermutlich swing oder javafx.
das Interface von TreeView
Aber da steht jedenfalls Interface und somit ist implements passend. (implements wäre richtig, wenn MyTreeView ein Interface sein soll) Auch wenn ich class im Snippet vergessen habe. Aber Erbsenfzählerei, ich denke das ist hier nicht das Problem.
Das spannende ist die Aussage
Sieht so aus, als würde das Interface von TreeView das nicht zulassen.
 
TreeView klingt nach JavaFX, da der Tree in AWT/Swing JTree ist. Wäre es SWT, würde es der JFace TreeViewer sein. Aber: Wir müssten erst einmal herausfinden, was genau der TO denn eigentlich hat, denn keine der APIs ist final, also sollte man eigene Methoden in abgeleiteten Klassen hinzufügen können.
 
Wenn du TreeView erweiterst, müsste es, wie @looparda sagt gehen (auch wenn du statt implements natürlich extends verwenden musst 🙂 ).
Verstehe das Problem daher auch nicht.

Noch eine Frage: Warum machst du dass? Was gewinnst du, wenn du den TreeView erweiterst? Ich verwende jetzt schon eine ganze Weile (seit ca. 5 Jahren - Pi-Mal-Daumen) JavaFX und bin nur sehr selten, z.B. bei Custom Components, in die Situation gekommen, ein Control von JavaFX zu erweitern. Und wenn, dann waren es meist Layouts (HBox, StackPane, Pane, ...).

Danke für eure Antworten.. erstmal, ihr hattet recht.

Ich hab nicht genau hingeschaut, ich hatte meinen TreeView-Object wie folgt instanziiert:

Code:
TreeView<String> tree = new CustomTreeView<String>();

Kein Wunder, dass die eigenen Methoden nicht gefunden werden.


Und, es geht natürlich um kein Interface, da hatte ich Unsinn geschrieben 😉.

Dann zur deiner Frage dzim: Mein Ziel war eine TreeView-Klasse, bei der das TreeView-Objekt in Abhängigkeit der expandierten Nodes automatisch seine größere ändert. Ich schätze, das du recht hast und das Gleiche auch mit einem reinen Layout möglich wäre, aber ich bin bis jetzt nicht darauf gekommen, wie das Layout aussähe. Evtl hast du nen Tipp. Meine eigene Klasse tut, was sie soll, aber eine Layout-basierte Lösung wäre schöner.
 

Neue Themen


Zurück
Oben