Guide to the Java UI landscape: desktop, web, terminal and mobile
Visit https://awesome-java-ui.com
The easiest way to get started is with our pre-configured development environment:
- Open this repository in GitHub Codespaces or VS Code with DevContainers
- The environment will automatically set up Java 25 and JBang
- Run
jbang run build.javato build the site - Open
_site/index.htmlin a browser to view the site
Prerequisites:
- Java 25+
- JBang
Build and serve the site:
# Generate thumbnails for images (run this after adding new images)
jbang GenerateThumbnails.java
# Build the site (generates HTML in _site/ directory)
jbang run build.java
# Serve locally (open http://localhost:8000)
cd _site
"%JAVA_HOME%\bin\jwebserver"The site will be available at http://localhost:8000
About Thumbnails:
The site uses automatically generated thumbnails for faster page loading. When you add a new image to the images/ directory:
- Run
jbang GenerateThumbnails.javato generate thumbnails - Thumbnails are created as
thumbnail-{name}.pngwith max height of 180px - The script intelligently skips unchanged images using hash tracking
- The build process automatically uses thumbnails with fallback to original images
We welcome contributions! There are several ways you can help:
If you're comfortable with Git and markdown:
- Fork this repository
- Create a new
.mdfile for the Java UI library (e.g.,my-framework.md) - Follow the markdown template structure (see existing files like
htmx.md) - Submit a pull request
If you'd like to suggest a library but don't have time for a full PR:
- Create a new issue
- Provide at minimum:
- Project name
- Project URL
If you really want to help, provide the full markdown content in the issue using this template:
---
name: Framework Name
status: Production-ready / Active / Archived / Beta
javaVersion: Java 17+
learningCurve: Easy / Moderate / Steep
lastRelease: vX.X.X (YYYY)
learnMoreText: Official Website
learnMoreHref: https://example.com
image: images/ui-framework-name.png
tags:
- Desktop UI / Web UI / Terminal UI / Mobile UI
- Web Framework / UI Components / etc.
---
Brief description of the framework (2-3 paragraphs explaining what it is,
its key features, and why it's relevant to Java developers).
## Code Example
\```java
// Minimal working example demonstrating the framework
public class Example {
public static void main(String[] args) {
// Your example code here
}
}
\```Required metadata fields:
name: Display namestatus: Current project statusjavaVersion: Supported Java versionslearningCurve: Difficulty levellastRelease: Latest version and yearlearnMoreText/learnMoreHref: Link to documentationimage: Screenshot/logo filenametags: Categories (Desktop UI, Web Framework, Terminal UI, etc.)
All contributions are appreciated! 🎉