<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">Hi,</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Thank you both John and Michael for the detailed mails. Yeah, I've dabbled with both approaches (building SDK each vs. copying classes to a separate project).</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">I was curious if there was some <i>third</i> way to run from the JFX project itself without needing to actually build the SDK each time (or copying classes).</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">It sounds like there isn't, otherwise you'd have mentioned it, so that's the answer... I was mainly wondering if I was missing a more streamlined way.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Thanks again.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Kind Regards,</div><div class="gmail_default" style="font-family:verdana,sans-serif">Cormac</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Mon, 22 Dec 2025 at 00:32, John Hendrikx <<a href="mailto:john.hendrikx@gmail.com">john.hendrikx@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u>

  
    
  
  <div>
    <p>What I often do when I want to test changes to FX internals is to
      not build FX at all, but instead just copy the classes I need to
      change into my project and leaving them in the internal package.</p>
    <p>So for example, I want to change something in Window, I just copy
      the class into my mini project:</p>
    <p>- src/main/java/javafx/stage/Window.java<br>
      - src/main/java/app/MyApp.java<br>
      - pom.xml --> depends on JavaFX 25 maven artifacts or say
      26-ea+18<br>
    </p>
    <p>No `module-info.java`</p>
    <p>When you run this, you may get an error that you can't start your
      application like this.  You can work around that with a mini
      launcher class:</p>
    <p>     public void main(String... args) {<br>
                 Application.launch(MyApp.class, args);<br>
           }<br>
    </p>
    <p>Now it starts without whining about module restrictions.</p>
    <p>The Window class here can be modified in most ways, but you can't
      remove methods that may be overridden.  You can remove "sealed"
      and "permits" if you're copying a class that has those (like
      Node).</p>
    <p>A screenshot of a project that I used to debug several issues
      over the past few days:</p>
    <p><img src="cid:ii_19b439f97582e95dbc31" alt=""></p>
    <p><br>
    </p>
    <p>--John<br>
    </p>
    <p><br>
    </p>
    <div>On 21/12/2025 22:27, Cormac Redmond
      wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">
        <div style="font-family:verdana,sans-serif">Hi,</div>
        <div style="font-family:verdana,sans-serif"><br>
        </div>
        <div style="font-family:verdana,sans-serif">Are there any tricks to
          quickly spinning up a visible application (from a test or
          otherwise), from within the JFX project, in order to see your
          changes?</div>
        <div style="font-family:verdana,sans-serif"><br>
        </div>
        <div style="font-family:verdana,sans-serif">Obviously building the
          SDK and "using" it in an application is time consuming.</div>
        <div style="font-family:verdana,sans-serif"><br>
        </div>
        <div style="font-family:verdana,sans-serif">I've seen this in
          build.gradle, where I assume StubToolKit automatically runs a
          sort of headless Application for tests without tests needing
          to manage it. Can it be replaced with anything?</div>
        <div style="font-family:verdana,sans-serif"><br>
        </div>
        <blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">
          <div><font face="monospace">   
              test {</font></div>
          <div><font face="monospace">   
                  def cssDir =
              file("${TEST_SDK_DIR}/shims/${moduleName}/javafx")</font></div>
          <div><font face="monospace">   
                  jvmArgs enableNativeGraphics</font></div>
          <div><font face="monospace">   
                  jvmArgs
              "-Djavafx.toolkit=test.com.sun.javafx.pgstub.StubToolkit",</font></div>
          <div><font face="monospace">   
                      "-DCSS_META_DATA_TEST_DIR=$cssDir"</font></div>
          <div><font face="monospace">   
              }</font></div>
          <div><br>
          </div>
        </blockquote>
        <font face="monospace"><span class="gmail_default" style="font-family:verdana,sans-serif">I know some people
            copy UI classes into their project (keeping the same package
            name as the real JFX control class, where it will take
            precedence), and develop/test it <i>there</i>. If that's
            the best solution to date, that's fine.</span><br>
        </font>
        <div><font face="monospace"><span class="gmail_default" style="font-family:verdana,sans-serif"><br>
            </span></font></div>
        <div><font face="monospace"><span class="gmail_default" style="font-family:verdana,sans-serif">In general, any
              other quick development tips (in the realm of quickly
              visually testing your changes) would be appreciated...</span></font></div>
        <div><font face="monospace"><span class="gmail_default" style="font-family:verdana,sans-serif"><br>
            </span></font></div>
        <div><font face="monospace"><span class="gmail_default" style="font-family:verdana,sans-serif">Thanks in advance.</span></font></div>
        <div><font face="monospace"><span class="gmail_default" style="font-family:verdana,sans-serif"><br>
            </span></font></div>
        <div><font face="monospace"><span class="gmail_default" style="font-family:verdana,sans-serif"><br>
            </span></font></div>
        <div><font face="monospace"><span class="gmail_default" style="font-family:verdana,sans-serif"><br>
            </span></font></div>
        <div><font face="monospace"><span class="gmail_default" style="font-family:verdana,sans-serif">Kind Regards,</span></font></div>
        <div><font face="monospace"><span class="gmail_default" style="font-family:verdana,sans-serif">Cormac</span></font></div>
      </div>
    </blockquote>
  </div>
</blockquote></div></div>