VTerminal
VTerminal copied to clipboard
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 R...
Table of Contents
- Links
- Installation
- Media (Screenshots & Videos)
- Supported Components
- Enhanced Components
- Credits & Inspiration
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:2021.03.04'
}
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>2021.03.04</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" % "2021.03.04"
Media
Screenshots
- JButton
- JCheckBox
- JLabel
- JLayeredPane
- JPasswordField
- JProgressBar
- JRadioButton
- JScrollPane
- VEditorPane
- VPanel
- VTextArea
- VTextField
- VTextPane
Videos
- Click-through of the example GUI used for testing VTerminal. This covers most, if not all of the supported components.
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.
- JButton
- JCheckBox
- JEditorPane
- JLabel
- JPanel
- JPasswordField
- JProgressBar
- JRadioButton
- JScrollPane
- JTextArea
- JTextField
- JTextPane
- JToolTip
-
VFrame
- A subclass of JFrame which allows for easier en/disabling of full screen mode and which has a number of convenience methods.
-
VPanel
- A subclass of JPanel which allows for displaying a 2D grid of characters in which each cell can display a unique fore/background color and code point (Unicode character).
Enhanced Components
Unless otherwise specified, the following components have an overridden
paintComponent
method which ensures the component is rendered at a higher
quality than its default counterpart.
The following image shows a JEditorPane
and a VEditorPane
side-by-side.
Unfortunately, I was unable to find a fool-proof way of ensuring that all components render with high-quality RenderingHints. If a method is ever discovered, then these classes may be depreciated and/or removed from this repository.
Credits & Inspiration
- Architecture
- Robert Eckstein's "Java SE Application Design With MVC".
- Juri Strumpflohner's "Logical separation with MVC", a follow-up to Eckstein's article.
- Filthy Rich Clients: Developing Animated and Graphical Effects for Desktop Java™ Applications
- Trystan's AsciiPanel.
-
VFont
- The FontGenerator from ZenDarva's AsylumRLE.
- The FontRenderer from Oddlabs' Tribal Trouble.