116

I would like to write a Java terminal application that does screen manipulation. Are there any good libraries out there that allow you to manipulate the screen like curses in the *nix/C world?

Minimal features I'm looking for are windowing and user input support.

In feature-speak, I'd like to have a region of the terminal where some data is regularly updated while (at the same time) the user can enter commands/text in some other part of the screen.

Jonik
  • 80,077
  • 70
  • 264
  • 372
Francisco Canedo
  • 1,980
  • 2
  • 13
  • 16

5 Answers5

63

Lanterna

I found the Lanterna library recently. Haven't had the opportunity to use it yet but it looks like a more up-to-date alternative to the others.

enter image description here

Basil Bourque
  • 303,325
  • 100
  • 852
  • 1,154
Bryce
  • 2,157
  • 17
  • 16
37

There is Charva, which links to native code but has an api based on Swing. The screenshots show lots of text windows, so that looks useful.

Bart Schuller
  • 2,725
  • 19
  • 18
26

Haven't used it myself, but Java Curses Library sounds like what you want.

Jim Blizard
  • 4,255
  • 28
  • 37
10

Here is a way to call the ncurses lib using JNI. I tested this and it works.

DMKing
  • 1,705
  • 1
  • 10
  • 13
8

As of 2013, the closest I can find is Blacken.

Blacken is not a curses library per-se. It moves away from the terminal, and instead, renders it's own "console window." This has the disadvantage of not looking "console-like." Instead, you get full (arbitrary) colour support, and a curses-like API (in addition to their main API).

You can also set the font to Mono for fixed-width characters.

ashes999
  • 9,925
  • 16
  • 73
  • 124