Skip to content
ValkrystPublic

About

A new Look-and-Feel (LaF) for Java, which allows for a grid-based display of Unicode characters with custom fore/background colors, font sizes, and pseudo-shaders. Originally designed for developing Roguelike/lite games.

Topics

Resources

Stars

90 stars

Watchers

10 watching

Forks

Latest commit

 

History

2,761 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java CI with Maven

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 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 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 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"

Media

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

About

A new Look-and-Feel (LaF) for Java, which allows for a grid-based display of Unicode characters with custom fore/background colors, font sizes, and pseudo-shaders. Originally designed for developing Roguelike/lite games.

Topics

Resources

Stars

90 stars

Watchers

10 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages