JavaFX and the Missing Interfaces

Knut Arne Vedaa knut.arne.vedaa at
Mon Nov 5 11:49:05 PST 2012

While you want

     NodeBase implements Node

but would be happy with

     Node implements SceneNode

I'd propose a third alternative (which I prefer to the first):

     Node implements NodeLike

This naming scheme is used a lot in Scala's standard library (but for 
traits and not interfaces, the former which can have concrete members).

Speaking of - if I understand your blog post correctly, what you want is 

   trait IControl extends Control {
     def iCommonMethod = "something"

   class ITextField extends TextField with IControl

   def fooBar(iControl: IControl) {
     iControl setTooltip new Tooltip("foo bar")


   val iTextField = new ITextField


Which is perfectly valid Scala code. So if you can't convince the powers 
that be to refactor the API, you have at least another option, hint hint. :)

Knut Arne Vedaa

On 05.11.2012 19:50, Randahl Fink Isaksen wrote:
> I have been struggling with a number of problems stemming from the way JavaFX is designed – specifically the lack of interfaces for many of the extension points in the class hierarchy.
> It takes some thorough explaining with code examples, so instead of just an unformatted e-mail I posted a more readable explanation of the problem on-line:
> Please read
> I hope we could have a constructive discussion on this matter on this list before I go ahead and file a Jira, so the Jira issue becomes the best possible basis for solving the design problem.
> Thanks
> Randahl

More information about the openjfx-dev mailing list