Java -- CNI -- X Window System (JCNIX)





Code & screenshots:
Coming soon:


Download source


JCNIX is basically code that makes it possible to create graphical interfaces using GCJ on a platform supporting the X Window System.

It started out as some simple experimenting with the CNI interface of gcj and Xlib. After a while, development veered into reimplementing significant chunks of the Java 1.3 API.


October 22, 2000

The AWT and image code, the Xlib toolkit and some of the Java2D pipeline classes has now been merged into the libgcj CVS. Some sample (~3KB) code to exercise the rendering implementation has been made available. In future I'm more likely to work towards merging in new code directly into the libgcj CVS, rather than making separate releases.

August 6, 2000

Put up some notes on a Java2D Rendering pipeline for libgcj/JCNIX. It discusses the design of a rendering pipeline for the Java2D implementation I've been working on. The work on merging stable parts of JCNIX into libgcj is continuing.

July 18, 2000

jcnix-s2000.0718: Transparent image drawing (alpha channel support for images). Java2D rendering pipeline framework. Window resizing now causes automatic revalidation of component layout. See ChangeLog for details.

Transparent image drawing is currently very slow, but this will improve. There are many opportunities for optimization, and much of the required support is already in place.

There are some problems with image drawing on pseudo color visuals. If anyone has any references to papers on doing deterministic dithering using arbitrary palettes (no color cubes), I'd like to hear about them.

July 8, 2000

Another update, jcnix-s2000.0708: AWT component peer implementations by looping back paint requests and events to Swing components. Proper event masking. JLabel implemented. See ChangeLog for details.

July 3, 2000

New version, jcnix-s2000.0703: Compiles with latest gcc & libgcj from CVS, optimized painting, pseudo color support. See ChangeLog for details.

June 26, 2000

A new version has been made available, containing significant changes such as Hermes and JPEG support, rudimentary clean room implementations of AWT and Swing.

Rolf W. Rasmussen <>