Refactored GUI tools made with Java8 + JavaFX in 2016



The problem I was having

Problem decomposition

What was important

What I did / what I was able to do

Finally achieved my wish on 5/11/2020

Now works with custom JRE

Automatic build and automatic release with CI


Automatic format

Changed to format before build with google-java-format-gradle-plugin

Visualization of test coverage

Code diet

Before refactoring

$ find src/ -name '*.java' | xargs wc -l
       31 src/application/fileList/
      189 src/application/fileList/
       31 src/application/imageViewer/
      288 src/application/imageViewer/
       92 src/application/
      471 src/application/
       44 src/application/options/
      104 src/application/options/
       40 src/application/options/
      165 src/application/options/
       69 src/application/options/
       36 src/application/outputViewer/
      122 src/application/outputViewer/
       33 src/application/outputViewer/
      130 src/application/outputViewer/
       25 src/application/
       29 src/application/version/
       42 src/application/version/
     1941 total

After completion

# main
$ find src/main/java/ -name '*.java' | xargs wc -l
         8 src/main/java/com/jiro4989/tkfm/data/
        42 src/main/java/com/jiro4989/tkfm/data/
        38 src/main/java/com/jiro4989/tkfm/data/
        67 src/main/java/com/jiro4989/tkfm/
       422 src/main/java/com/jiro4989/tkfm/
       235 src/main/java/com/jiro4989/tkfm/model/
        21 src/main/java/com/jiro4989/tkfm/model/
        52 src/main/java/com/jiro4989/tkfm/model/
       211 src/main/java/com/jiro4989/tkfm/model/
       133 src/main/java/com/jiro4989/tkfm/model/
        15 src/main/java/com/jiro4989/tkfm/util/
         6 src/main/java/com/jiro4989/tkfm/
      1250 total

# test
$ find src/test -name '*.java' | xargs wc -l
        13 src/test/java/com/jiro4989/tkfm/data/
        29 src/test/java/com/jiro4989/tkfm/data/
        26 src/test/java/com/jiro4989/tkfm/data/
       212 src/test/java/com/jiro4989/tkfm/model/
        28 src/test/java/com/jiro4989/tkfm/model/
        64 src/test/java/com/jiro4989/tkfm/model/
       143 src/test/java/com/jiro4989/tkfm/model/
       120 src/test/java/com/jiro4989/tkfm/model/
        43 src/test/java/com/jiro4989/tkfm/util/
        13 src/test/java/com/jiro4989/tkfm/
       691 total

Test code maintenance

Time taken


Having a hard time

I'm not stupid about suffering from the tools I made (ridiculous)


JavaFX Separation Problem (jmods)

Custom JRE

I don't have the source code for my library


I'm glad I did it

Reflection 4 years ago

from now on


If I had done these from the beginning, I wouldn't have had such a painful feeling ...

that's all

Recommended Posts

Refactored GUI tools made with Java8 + JavaFX in 2016
Make Calendar gadgets made with JavaFX compatible with Java SE 9
I made roulette in Java.
JavaFX environment construction in Java 13
Morphological analysis in Java with Kuromoji
I made a GUI with Swing
I made an annotation in Java.
Age guessing game made in Java
Play with Markdown in Java flexmark-java
Sample vending machine made in Java
Run an application made with Java8 with Java6
Concurrency Method in Java with basic example
Sample vending machine made in Java (classification)
Read xlsx file in Java with Selenium
Split a string with ". (Dot)" in Java
Vending machine made with Java (domain driven)
Working with huge JSON in Java Lambda
I made a primality test program in Java
Read a string in a PDF file with Java
Create a CSR with extended information in Java
Hello World with JavaFX 11 (OpenJFX) in Liberica JDK 11
Static code analysis with Checkstyle in Java + Gradle
Simple obstacle racing made with processing for Java
Text extraction in Java from PDF with pdfbox-2.0.8
I made a rock-paper-scissors game in Java (CLI)
Practice working with Unicode surrogate pairs in Java
[JAVA] [Spring] [MyBatis] Use IN () with SQL Builder
Encrypt / decrypt with AES256 in PHP and Java
Programming with direct sum types in Java (Neta)
Get along with Java containers in Cloud Run
Partization in Java
Changes in Java 11
HelloFX with JavaFX
Java GUI sample
Rock-paper-scissors in Java
Pi in Java
FizzBuzz in Java
I made a simple calculation problem game in Java
How to call functions in bulk with Java reflection
Include image in jar file with java static method
Introduce JavaFX 15 and do GUI development with VS Code
Quickly implement a singleton with an enum in Java
I dealt with Azure Functions not working in Java
[Java] Get the file path in the folder with List
Output true with if (a == 1 && a == 2 && a == 3) in Java (Invisible Identifier)
Prepare the environment for java11 and javaFx with Ubuntu 18.4
Check coverage with Codecov in Java + Gradle + Wercker configuration
Face recognition app made with Amazon Rekognition and Java
I made a program in Java that solves the traveling salesman problem with a genetic algorithm