On this page, I gather various useful information and links related to Java GUI apps development.
General:
- Java Function interface (SO)
- How to reference a method in javadoc? (SO)
- Comparing Java enum members: == or equals()? (SO)
- What is a serialVersionUID and why should I use it? (SO) (see also this article on DZone)
Logging:
- https://stackify.com/slf4j-java/
- https://www.baeldung.com/slf4j-with-log4j2-logback
- https://stackify.com/slf4j-java/
Testing:
- https://www.baeldung.com/junit-5
- https://junit.org/junit5/
- https://junit.org/junit5/docs/current/user-guide/
- https://junit.org/junit5/docs/current/user-guide/#writing-tests
- https://howtodoinjava.com/junit5/junit-5-vs-junit-4/
- https://dzone.com/articles/7-popular-unit-test-naming
Static analysis annotations (e.g. @NonNull
, @NotNull
)
- https://stackoverflow.com/questions/35892063/which-nonnull-java-annotation-to-use
- https://stackoverflow.com/questions/4963300/which-notnull-java-annotation-should-i-use
- https://www.jetbrains.com/help/idea/annotating-source-code.html
- https://checkerframework.org/manual/
-
Maven packaging to JAR
- http://tutorials.jenkov.com/maven/maven-build-fat-jar.html
- https://www.codejava.net/coding/how-to-create-executable-jar-file-with-resources-and-dependencies-using-maven-in-eclipse
- http://maven.apache.org/plugins/maven-assembly-plugin/
- https://stackoverflow.com/questions/38548271/difference-between-maven-plugins-assembly-plugins-jar-plugins-shaded-plugi/43444019#43444019
- https://medium.com/@randilfernando/when-to-use-maven-jar-maven-assembly-or-maven-shade-ffc3f76ba7a6
General:
Java API docs:
- https://openjfx.io/javadoc/16/
- https://openjfx.io/javadoc/16/javafx.graphics/javafx/scene/input/MouseEvent.html
Tutorials:
- JavaFX tutorial
FAQs:
- Resizing images to fit the parent node
- JavaFX ImageView resize in StackPane
- Z-Order in JavaFX
- JavaFX ImageView fits container
- SVG in JavaFX
- Passing Parameters JavaFX FXML
- Dependency Injection and JavaFX
- JavaFX center stage on screen
- How to restart a JavaFX application when a button is clicked
- What is JavaFX and how is it different from Swing and AWT?
Useful packages:
Redux for Java(FX):
- https://netopyr.com/2016/10/11/mvc-dead-comes-next/
- https://github.com/manuel-mauky/redux-javafx-devtool
- https://lestard.eu/tags/#redux
- https://github.com/netopyr/reduxfx
Legacy:
- Client Technologies docs, Java Platform, Standard Edition (Java SE) 8
yacc, bison, ANTLR v4, CFGs ...
ANTLR v4:
- https://github.com/antlr/antlr4
- https://github.com/antlr/antlr4/blob/master/doc/index.md
- https://github.com/antlr/grammars-v4
- https://github.com/antlr/grammars-v4/tree/master/pgn
- https://github.com/antlr/grammars-v4/tree/master/fen
- https://github.com/antlr/intellij-plugin-v4
- https://www.antlr.org/api/Java/index.html
- https://github.com/antlr/antlr4/blob/master/doc/listeners.md
- https://github.com/bkiers/Mu/tree/master/src/main/java/mu
- https://github.com/bkiers/Mu
- https://github.com/bkiers/PGN-parser
- https://tomassetti.me/parsing-in-java/
- https://strumenta.com/
Libraries:
FAQs:
- https://stackoverflow.com/questions/28287398/what-is-the-preferred-way-of-getting-the-frame-rate-of-a-javafx-application
- https://edencoding.com/game-loop-javafx/
- https://github.com/edencoding/javafx-game-dev
- http://web.archive.org/web/20170212174534/http://svanimpe.be/blog/game-loops.html
- http://web.archive.org/web/20171221051455/http://svanimpe.be/blog/game-loops-fx
- https://github.com/svanimpe/fx-game-loops
- https://community.oracle.com/tech/developers/discussion/2618270/multi-threaded-game-loop-in-javafx
- http://web.archive.org/web/20150307051600/http://jayskills.com/blog/2013/08/06/tower-defense-in-javafx/
- https://www.gameenginebook.com/
- https://gamedevelopment.tutsplus.com/tutorials/introduction-to-javafx-for-game-development--cms-23835?ec_unit=translation-info-language
Bomberman / Game of Bombs:
- https://en.wikipedia.org/wiki/Bomberman
- https://github.com/DmytroVasin/bomber
- https://gameofbombs.com/#/wiki/en/how-to-play
- https://gameofbombs.com/client/0.1.32/img/tileset.png?v=6
- https://gameofbombs.com/client/0.1.32/img/items.png
Minecraft and Java:
- https://www.quora.com/Does-Minecraft-use-the-ordinary-Java-3D-API-for-graphics
- LWJGL 2 has been used in the creation of dozens of games, including titles like Minecraft by Mojang and Revenge of the Titans by Puppygames. It is also used in popular game engines, like libGDX and jMonkeyEngine. “The original version of Minecraft is written in Java, because that's what Notch chose to write it in. (The game does use the Lightweight Java Game Library to interface with "native" libraries such as OpenGL, so it's not "pure" Java.)”
- https://www.quora.com/Why-does-Minecraft-run-on-Java