
This project does not require frequent updates as it is a look and feel for Swing, which is a stable framework. You can assume it works unless otherwise stated.
Table of Contents
Links
Installation
VTerminal is hosted on the JitPack package repository
which supports Gradle, Maven, and sbt.
Gradle
Add JitPack to your build.gradle at the end of repositories.
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Add VTerminal as a dependency.
dependencies {
implementation 'com.github.Valkryst:VTerminal:2026.11.05'
}
Maven
Add JitPack as a repository.
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add VTerminal as a dependency.
<dependency>
<groupId>com.github.Valkryst</groupId>
<artifactId>VTerminal</artifactId>
<version>2026.11.05</version>
</dependency>
Scala SBT
Add JitPack as a resolver.
resolvers += "jitpack" at "https://jitpack.io"
Add VTerminal as a dependency.
libraryDependencies += "com.github.Valkryst" % "VTerminal" % "2026.11.05"
Please note that all screenshots and videos will look worse than if you were to run the example GUI yourself. This is primarily due to compression.
Screenshots
Videos
Supported Components
If there is a component that you’d like VTerminal to support, or if you’re
experiencing any issues with the supported components, then please feel free to
open an issue.
Enhanced Components
Every component rendered by the VTerminal LAF automatically applies a set of
high-quality RenderingHints
(antialiasing, bicubic interpolation, etc.) to its Graphics2D context before
painting. No special subclasses are required — standard Swing components work
as-is once the LAF is installed.
The following image shows a JEditorPane rendered with and without high-quality
hints side-by-side.

Controlling rendering quality
There are three control levels, applied in order of precedence:
1. Global default — enabled by default; applies to every component.
// Disable high-quality rendering for all components.
VTerminalLookAndFeel.enableHighQualityRendering(false);
// Re-enable it.
VTerminalLookAndFeel.enableHighQualityRendering(true);
2. Per-component override — overrides the global default for a single component.
// Force high-quality rendering for this component regardless of the global default.
component.putClientProperty(VTerminalLookAndFeel.HIGH_QUALITY_RENDERING_KEY, Boolean.TRUE);
// Force low-quality rendering for this component regardless of the global default.
component.putClientProperty(VTerminalLookAndFeel.HIGH_QUALITY_RENDERING_KEY, Boolean.FALSE);
3. Clear the override — removes the per-component override and reverts to the global default.
component.putClientProperty(VTerminalLookAndFeel.HIGH_QUALITY_RENDERING_KEY, null);
Credits & Inspiration
评论