<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">Am 08.03.24 um 00:40 schrieb Marius
      Hanl:<br>
    </div>
    <blockquote type="cite"
cite="mid:trinity-5e766a67-a319-4538-b267-7180ad8f805a-1709854826237@3c-app-webde-bap43">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div style="font-family: Verdana;font-size: 12.0px;">
        <div>One note here regarding that a lot of things are final in
          JavaFX:</div>
        <div>
          <div> </div>
          <div>The problem is not that everything is final - this is
            intended and makes sense, since we speak mostly of
            properties here. Overriding those will not give you any
            benefit.</div>
          <div>You mostly want to override e.g. Controls if you add
            something new to it (a new property) or may just want to set
            another default skin.</div>
          <div>This design is mostly superior than e.g. Swing, where you
            can override things and easily break something if not too
            careful.</div>
          <div>Pretty sure that this were some lessons learned from the
            development of Swing.</div>
          <div> </div>
          <div>The biggest problem is rather that a lot of methods are
            package private or 'Accessors' are used to call specific
            methods, which is not just a questionable design but also
            restrict the usage.</div>
          <div> </div>
          <div>It is often not possible to override even a minor feature
            inside the skin.</div>
          <div>So you may rather want to recreate the skin then, and
            copy the existing skin and just change some stuff. But this
            will mostly not work either, as there is a lot of internal
            API usage, e.g. Accessors or
            some com.sun.javafx.scene.control.skin.Utils usage.</div>
        </div>
      </div>
    </blockquote>
    <p>Yes, I had such a problem yesterday. TableView uses
      <Ctrl>+<Space> as shortcut to toggle selection of
      current row. I want to use that key combination as a "global"
      shortcut however. I have a regular menu bar with a menu item that
      has <Ctrl>+<Space> as accelerator.</p>
    <p>Now I need to remove that bit from the TableView's behavior. I've
      seen that there are efforts under way to make behavior public API.
      I would really welcome that :-).</p>
    <p><br>
    </p>
    <p>BTW, <a class="moz-txt-link-freetext" href="https://bugs.openjdk.org/browse/JDK-8088068">https://bugs.openjdk.org/browse/JDK-8088068</a> is also an issue
      concerning accelerators that I currently need a separate class as
      workaround.</p>
    <p><br>
    </p>
    <p>Other issues that I currently work around somehow (inconvenient,
      but no showstopper):</p>
    <p>JDK-8092315, JDK-8087981, maybe also JDK-8123117, but I think
      that on is correctly closed as  "not an issue", will have to
      check.</p>
    <p>To put this into perspective, we have a lot more references to
      JavaFX issues in our code, which have all been fixed :-).</p>
    <p><br>
    </p>
    <p>One major pain point that we have at the moment is CSS
      performance, I think (but did not investigate yet) that some kind
      of performance regression happened somewhere between 17 and 21.<br>
    </p>
    <p><br>
    </p>
    <p>Overall speaking, with the ongoing efforts for a RichText-control
      and making behavior public API, I think JavaFX is definitely on
      the right track, at least from my perspective :-).</p>
    <p><br>
    </p>
    <p>--Robert<br>
    </p>
    <br>
  </body>
</html>