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.
- Links
- Installation
- Media (Screenshots & Videos)
- Supported Components
- Enhanced Components
- Credits & Inspiration
- Discussions/Forum
- Documentation
- Related Projects
- Chris Reuter's demo, showing how VTerminal can be used with JRuby.
- Performance Tips
- Resolving Compatibility & Render Issues
VTerminal is hosted on the JitPack package repository which supports Gradle, Maven, and sbt.
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:2024.9.8'
}
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>2024.9.8</version>
</dependency>
Add JitPack as a resolver.
resolvers += "jitpack" at "https://jitpack.io"
Add VTerminal as a dependency.
libraryDependencies += "com.github.Valkryst" % "VTerminal" % "2024.9.8"
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.
- JButton
- JCheckBox
- JLabel
- JLayeredPane
- JPasswordField
- JProgressBar
- JRadioButton
- JScrollPane
- VEditorPane
- VPanel
- VTextArea
- VTextField
- VTextPane
- Click-through of the example GUI used for testing VTerminal. This covers most, if not all the 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).
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.
- 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.