When I first started programming in Java I thought that graphics would be best with a framework like JavaFX. It was a lot more complicated than I thought it would be. I switched to using the Princeton Standard Library with my students and find that it works great for things like graphs, etc. even though it's not as capable as jFreeChart and other alternatives.
That said, I'd like to be able to get my students to put graphics in the terminal in a similar manner to how people have traditionally used ncurses or how people like DHH are now using Terminal Text Effects in Python. With Java there are options like Laterna but I recently came across TamboUI and it looks very appealing, like this:

The Tamboui JAR files are available on the MVN Repository (0.4.0). I downloaded:
Ah... that didn't work. So I went with the Java 25 example on the front screen, which require
and then suggested that I use jbang to execute the compiled Java code. So I installed that with
brew install jbang
and compiled the code (after making sure that the two JAR files were in the same folder as my java source file):
javac -cp tamboui-toolkit-0.4.0.jar:tamboui-panama-backend-0.4.0.jar simpleexample.java
then I ran it with jbang:

and the result was:

I'm liking the markup text support! Plus, I hadn't used jbang before and like how it didn't require me to explicitly write out any of the dependencies when executing my Java program. Looks like a way to help my students reduce friction with running Java apps from the terminal. I'll have to try this out on Windows and Linux next.
Edits
July 7, 2026: added a link to Baeldung's page on jbang. Fixed spacing typo in last paragraph.
Oct 18, 2026: added link to ncurses, Terminal Text Effects and DHH interview about Omarchy.

James Andrew Smith is a Professional Engineer and Associate Professor in the Electrical Engineering and Computer Science Department of York University’s Lassonde School, with degrees in Electrical and Mechanical Engineering from the University of Alberta and McGill University. Previously a program director in biomedical engineering, his research background spans robotics, locomotion, human birth, music and engineering education. While on sabbatical in 2018-19 with his wife and kids he lived in Strasbourg, France and he taught at the INSA Strasbourg and Hochschule Karlsruhe and wrote about his personal and professional perspectives. James is a proponent of using social media to advocate for justice, equity, diversity and inclusion as well as evidence-based applications of research in the public sphere. You can find him on Twitter. You can find him on BlueSky. Originally from Québec City, he now lives in Toronto, Canada.
