Notebook / Archives / April 2005

April 2005 entries.

« March 2005 / \ May 2005 »

April 11, 2005

Structured graphics, diagramming, graphs and networks in Java

After my previous entries MindManager-like in Java and Knowledge Visualization Applets in Java, here come my notes about and around:

The Network Analysis And Visualization on SourceForge offers an entry to the world of graphs and networks.

To learn more and find algorithms, the InfoVis Cyberinfrastructure is a good start: “This page provides pointers to commonly used data analysis and visualization algorithms. An 'IVC Software Framework' was implemented to facilitate the easy integration of diverse software packages and their menu driven usage.”

Two labs have developped many good software and libraries:

Another hot spot is the aesthetics + computation group of the MIT Media Lab, with people like Ben Fry (Master's Thesis: organic information design). If you are interested in digital visual design, have a look at the Processing programming language: “ Processing is a programming language and environment built for the electronic arts and visual design communities. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook. It is used by students, artists, designers, architects, and researchers for learning, prototyping, and production.”.

Other interesting (but old) webpages:

Structured graphics

Structured 2.5D graphics

  • Piccolo (Jazz): “Piccolo is a toolkit that supports the development of 2D structured graphics programs, in general, and Zoomable User Interfaces (ZUIs), in particular. A ZUI is a new kind of interface that presents a huge canvas of information on a traditional computer display by letting the user smoothly zoom in, to get more detailed information, and zoom out for an overview. We use a "scene-graph" model that is common to 3D environments. Basically, this means that Piccolo maintains a hierarchal structure of objects and cameras, allowing the application developer to orient, group and manipulate objects in meaningful ways.” [really cool]
  • ZVTM - Zoomable Visual Transformation Machine: “The ZVTM is a Zoomable User Interface (ZUI) toolkit implemented in Java, designed to ease the task of creating complex visual editors in which large amounts of objects have to be displayed, or which contain complex geometrical shapes that need to be animated. It is based on the metaphor of universes that can be observed through smart movable/zoomable cameras, and offers features such as perceptual continuity in object animations and camera movements, which should make the end-user's overall experience more pleasing. The ZVTM features a graphical object model that makes the task of creating, modifying and animating graphical entities easier, allows the definition of custom shapes, all through a simple API. The ZVTM also features smooth zooming capabilities (2.5D/zoomable user interface), multiple independent layers inside a single viewport, multi-threaded views, and support for exporting SVG documents.”

Data oriented structured 2D graphics

  • The InfoVis Toolkit: “The InfoVis Toolkit is a Interactive Graphics Toolkit written in Java to ease the development of Information Visualization applications and components. The main characteristics of the InfoVis Toolkit are: unified data structure (the base data structure is a table of columns. Columns contain objects of homogeneous types, such as integers or strings. Trees and Graphs are derived from Tables); small memory footprint (using homogeneous columns instead of compound types improves dramatically the memory required to store large tables, trees or graphs, and generally the time to manage them); unified set of interactive components (interactive filtering -a.k.a. dynamic queries- can be performed with the same control objects and components regardless of the data structure, simplifying the reuse of existing components and the design of generic ones); fast (the InfoVis Toolkit can use accelerated graphics provided by Agile2D, an implementations of Java2D based on the OpenGL API for hardware accelerated graphics. On machine with hardware acceleration, some visualizations redisplay 100 times faster than with the standard Java2D implementation); extensible (the InfoVis Toolkit is meant to incorporate new information visualization techniques and is distributed with the full sources and with a very liberal licence - it could be a base for student projects, reseach projects or commercial products).”
  • prefuse: “prefuse is a user interface toolkit for building highly interactive visualizations of structured and unstructured data. This includes any form of data that can be represented as a set of entities (or nodes) possibly connected by any number of relations (or edges). Examples of data supported by prefuse include hierarchies (organization charts, taxonomies, file systems), networks (computer networks, social networks, web site linkage) and even non-connected collections of data (timelines, scatterplots). Using this toolkit, developers can create responsive, animated graphical interfaces for visualizing, exploring, and manipulating these various forms of data.”

Shape oriented structured 2D graphics

  • Eclipse Graphical Editing Framework (GEF): “The Graphical Editing Framework (GEF) allows developers to take an existing application model and quickly create a rich graphical editor.” [for and around Eclipse]
  • JHotDraw as Open-Source Project: “JHotDraw is a Java GUI framework for technical and structured Graphics. It has been developed as a "design exercise" but is already quite powerful. Its design relies heavily on some well-known design patterns. JHotDraw's original authors have been Erich Gamma and Thomas Eggenschwiler.” [“Last update: 07.10.2004”]

    The original HotDraw can be found on the HotDraw Home Page, and what seems to be an older implementation of the concept by RoleModel Software on the Drawlets webpage.

  • Mica Graphics Framework Classic: “Mica is a 2D, high-level, full-featured, object-oriented, hierarchical, structured, resolution-independent, mixed graphics and user interface widget library with multiple levels of drawing abstraction. [...] Mica has complete support for advanced features such as infinite undo/redo, zoom and pan, network graph layouts and interactive graph templates, connections and connection points, annotations and annotation points, event handling and action percolation, layers and layer tabs, arrows, shadows, cut/copy/paste to/from clipboard, multiple printable pages, postscript, jpeg, and pdf output, rulers, toolhints, status bars, tool bars, default save/load to/from ASCII files, complete working network and diagramming editors, and more... ” [“April 7, 2005” – too monolithic cos complete UI framework]
  • Vector Visuals: “Vector Visuals provides an easy-to-use, object-based API for creating and manipulating Java2D-rendered shapes and images. It features object embedding, dynamic connectors, and multithreaded task support.” [no info]
  • Diva: “Diva is an architecture for visualizing and interacting with dynamic information spaces. In Diva, visualizations are built by hooking together software components which generate, supply, filter, and display information. The current release focuses on Diva's canvas and graph visualization infrastructure.” [seems like advanced sketching]
  • Ezd (“easy-to-use structured graphics for Java”): “Digital Equipment Corporation's Western Research Lab is proud to offer an alternative: an EzdView class that extends the Java AWT Canvas class to provide easy-to-use structured graphics. A program "draws" by creating glyphs and adding them to a drawing. The program displays the drawing by associating it with a view which maps the drawing onto a portion of the display screen. A drawing may be displayed in multiple views, and a view may display multiple drawings. Once the view(s) are defined, the program no longer concerns itself with the display. Ezd takes responsibility for all display management. When the screen area under a view needs to be updated, the view draws each object in the order that it appears in the drawing, translating the drawing's coordinates to screen coordinates. It draws using the "painter's algorithm", i.e. colors are opaque and later drawn objects may obscure earlier drawn objects. As the user program executes, it changes what's on the display by making changes to glyphs, drawings, or views. Glyphs may change how they wish to be drawn, or be added, deleted, or rearranged in a drawing. The mappings of drawings onto views may also be changed. With no user intervention, Ezd automatically reflects these changes on the display. When mouse or keyboard events occur, Ezd identifies the effected glyph and calls the glyph's event handling method.” [“Last updated: 8 December 1997”]
  • subArtic: “SubArctic is not yet another AWT widget set. It is a complete, full- functioned, industrial strength toolkit designed to be used for all your user interface needs. SubArctic is based on 10 years of toolkit research and is designed to offer the advanced interface techniques needed to go beyond static interfaces and simple collections of widgets. SubArctic is highly extensible and supports a number of sophisticated effects not available in other toolkits (and provides the basic infrastructure to build much more). Specific features include: support for sophisticated drawing effects which can be applied to all interface elements; animation support based on a high level path model with controlled timing and support for effects such as slow-in/slow-out, anticipation and follow through, etc.; facilities for semantic snapping interactions; provisions for standard and custom interactor (widget) styles that can be switched dynamically; support for semantic lens interactions; a full-functioned interactor library with the customary buttons, check-boxes, sliders, etc., as well as more sophisticated interface composition techniques supporting dragging, snapping, lenses, and animation, all of which can be mixed with and added to other techniques; new techniques to support interactive debugging of interfaces; a built-in, efficient, and easy to use constraint evaluator for support of flexible dynamic layout, a well developed, and carefully designed infrastructure for extensibility at all levels, and; the system is available free.” [“Last revision: January 17 1997”]

Graphs or networks

Format for graphs

The Graphviz galaxy

  • ZGRViewer: “ZGRViewer is a 2.5D graph visualizer implemented in Java and based upon the Zoomable Visual Transformation Machine. It is specifically aimed at displaying graphs expressed using the DOT language from AT&T GraphViz and processed by programs dot or neato. ZGRViewer is designed to handle large graphs, and offers a zoomable user interface (ZUI), which enables smooth zooming and easy navigation in the visualized structure. ”
  • Grappa: “Grappa is a Java graph drawing package that simplifies the inclusion of graph display and manipulation capabilities within Java applications and applets. It has a good number of useful features built into it, but is also extensible. Grappa can be thought of as a port of a subset of GraphViz to Java.”
  • graphopt: “This program optimizes graph layouts. That's pretty much it.” [quite old: “v0.4.1 - 2003-05-06 17:00” – C++, for Linux?]

The RDF's corner

  • IsaViz - A Visual Authoring Tool for RDF: “IsaViz is a visual environment for browsing and authoring RDF models represented as graphs. It features: a 2.5D user interface allowing smooth zooming and navigation in the graph; creation and editing of graphs by drawing ellipses, boxes and arcs; RDF/XML, Notation 3 and N-Triple import; RDF/XML, Notation 3 and N-Triple export, but also SVG and PNG export.”

    As explained in Graph Stylesheets (GSS) in IsaViz, IsaViz makes use of the GSS styling language.

The JGraph galaxy

The best graphing suite to handle graphs in the way of Microsoft Visio (diagramming).

  • JGraph Swing Component: “With JGraph, users from highly-technical to very non-technical are able to display and edit complex information without the need to understand the underlying complexity. JGraph can be integrated into custom applications and websites and allows to use and interact with any data model, from XML files to databases or other native systems. Written in 100% pure Java, JGraph provides key features such as zooming, cell collapsing/expanding, undo, full event-handling, drag and drop support and much more.” [LGPL]
  • JGraph Layout Pro: “JGraph Layout Pro is the next generation of Java Graph Layout engine designed for optimal performance with the JGraph core. JGraph Layout Pro has a flexibility and simple design, enabling you to use circular, tree and force-directed layouts with ease in your JGraph application. Layout Pro comes with a developers guide and an example applet that demonstrates features such as auto-layout, collapsing/expanding of grouped cells, graph morphing and selective layouting of sub-graphs.” [not available for free]
  • JGraphpad Application Toolkit: “JGraphpad is a powerful, free diagram editor based on JGraph. It is currently available in English, French and German. With JGraphpad, you can create flow charts, maps, UML diagrams, and many other diagrams. JGraphpad is provided as an example for the JGraph Swing component.” [GPL]
  • JGraphT: “JGraphT is a free Java graph library that provides mathematical graph-theory objects and algorithms. JGraphT supports various types of graphs including: directed and undirected graphs; graphs with weighted / unweighted / labeled or any user-defined edges; various edge multiplicity options, including: simple-graphs, multigraphs, pseudographs; unmodifiable graphs - allow modules to provide "read-only" access to internal graphs; listenable graphs - allow external listeners to track modification events; subgraphs graphs that are auto-updating subgraph views on other graphs; all compositions of above graphs.”

The TouchGraph galaxy

In the spirit of inxight and Thinkmap.

  • Example from the development page:
    • KAON OI-modeler: “OI-modeler is a tool for ontology creation and maintenance. The goal of the tool is to allow scalability for editing large ontologies, as well as to incorporate some usability issues related to ontology management. The graph layout algorithms in OI-modeler are based on an open-source TouchGraph library.” [“Last modified 10-12-2002 09:13 AM” – “Package kaon - Version KAON 1.2.9 - Date April 4, 2005”];
    • GraphLayout;
    • WikiBrowser;
    • LinkBrowser;
    • More applications in the news section.
  • HyperGraph: “HyperGraph is an open source project which provides java code to work with hyperbolic geometry and especially with hyperbolic trees. It provides a very extensible api to visualize hyperbolic geometry, to handle graphs and to layout hyperbolic trees. As soon as you want to look at large data volume that has a hierarchical structure, you will find hyperbolic trees very useful - they show more data than standard tree representations like your favorite explorer, and they have a great look and feel.” [quite useful with ToughGraph]

The two main commercial diagramming systems

Other graph visualization and layout systems

  • GEF - Java Graph Editing Framework: “The goal of the GEF project is to build a graph editing library that can be used to construct many, high-quality graph editing applications. Some of GEF's features are: a simple, concrete design that makes the framework easy to understand and extend; Node-Port-Edge graph model that is powerful enough for the vast majority of connected graph applications; Model-View-Controller design based on the Swing Java UI library makes GEF able to act as a UI to existing data structures, and also minimizing learning time for developers familiar with Swing; high-quality user interactions for moving, resizing, reshaping, etc. GEF also supports several novel interactions such as the broom alignment tool and selection-action-buttons; generic properties sheet based on JavaBeans introspection; XML-based file formats based on the PGML standard (soon to support SVG).” [used by ArgoUML]
  • JGraphEd: “a Java Graph Editing application and Graph Drawing framework. JGraphEd was designed to allow users to easily create graphs step by step by adding or removing, or modifying nodes or edges. JGraphEd is modular by design and a variety of standalone and interdependent algorithms have been provided for manipulating or visualizing graphs. JGraphEd was also designed with extensibility in mind, in order to allow developers to quickly and painlessly add their own algorithms to the included library.” [“Last Modified: May 4, 2004”]
  • GVF - The Graph Visualization Framework: “The Graph Visualization Framework is a set of design patterns and approaches that can serve as an example for applications that either manipulate graph structures or visualize them. The libraries implement several basic modules for input, graph management, property management, layout, and rendering. Some modules could be made to operate independently with some modification. For example, the graph management module can, in principle, be used as the data structure part of a program which doesn't necessarily use visualization.” [“1.36 - 2004-03-03 16:00”]
  • JDigraph: “JDigraph is a Java library for representing and working with directed graphs and paths. The API is patterned after the Java Collections API.” [no info]
  • The VGJ Graph Drawing Tool [no info]
  • NetEditor (The Arakhnê Network Editor): “The Arakhnê Network Editor (NetEditor) is a free Java 2 component that permits to edit and show connected-graphs (or networks). NetEditor is only composed by a drawing area in which you can draw nodes and edges. NetEditor supports the following features: graphical editing of the graph structure; depth levels for nodes and egdes; can undoing and redoing user actions; alignement of nodes and egdes; clipboard management; exporting into graphical formats: GIF, PPM, PNG...; exporting into vectorial formats: Postscript, Xfig...; XML save and load.” [small and quite old: “0.6 (2003/05/23)”]
  • OpenJGraph - Java Graph and Graph Drawing Project: “ The goal of this project is to create an opensource Java library, licensed under LGPL, to create and manipulate graphs. Current features include: directed, undirected, directed acylic graphs, and weighted graphs; simple graph algorithms, such as graph traversal, minimum spanning tree and shortest path spanning trees for weighted graphs; basic graph drawing, including straight line and orthogonal graph drawing . however, more work still needs to be done here; user interaction, such as creating and removing a vertex, creating and removing an edge, dragging a vertex, and changing some of the vertex and edge properties.” [small and old: “$Date: 2002/10/05 09:57:28 $”]
  • Grace: “Grace is a generator for direct manipulation graph editors in Java. It can be used for any graph-like datastructure of your application.” [small and old: “ most recently modified at 10/18/1999 13:24 UTC”]
  • VGJ (Visualizing Graphs with Java): “VGJ, Visualizing Graphs with Java, is a tool for graph drawing and graph layout. Graphs can be input into VGJ in two ways: with a textual description (GML), or through a drawing the user creates using our graph editor. The user can then select an algorithm to layout the graph in an organized and (hopefully) aesthetically pleasing way.” [dead: “The current version is 1.03, released on 4/20/98. Development of VGJ at this (the original) site has stopped.”]

Large graphs and networks

  • JUNG - Java Universal Network/Graph Framework: “ JUNG — the Java Universal Network/Graph Framework--is a software library that provides a common and extendible language for the modeling, analysis, and visualization of data that can be represented as a graph or network. It is written in Java, which allows JUNG-based applications to make use of the extensive built-in capabilities of the Java API, as well as those of other existing third-party Java libraries. The JUNG architecture is designed to support a variety of representations of entities and their relations, such as directed and undirected graphs, multi-modal graphs, graphs with parallel edges, and hypergraphs. It provides a mechanism for annotating graphs, entities, and relations with metadata. This facilitates the creation of analytic tools for complex data sets that can examine the relations between entities as well as the metadata attached to each entity and relation. The current distribution of JUNG includes implementations of a number of algorithms from graph theory, data mining, and social network analysis, such as routines for clustering, decomposition, optimization, random graph generation, statistical analysis, and calculation of network distances, flows, and importance measures (centrality, PageRank, HITS, etc.). JUNG also provides a visualization framework that makes it easy to construct tools for the interactive exploration of network data. Users can use one of the layout algorithms provided, or use the framework to create their own custom layouts. In addition, filtering mechanisms are provided which allow users to focus their attention, or their algorithms, on specific portions of the graph.” [“26 February 2005: JUNG 1.5.4 released”]
  • GUESS: The Graph Exploration System: “A database driven system that allows nodes and edges to include attributes beyond basic display features (we support continuous, categorical, and binary attributes). GUESS lets you represent those features in a database and through a powerful interpreted, embedded (python-based) language which allows you to easily manipulate the graph based on those features and create new programs. [...] A zoomable interface to large graphs allowing for the visualization of graphs and networks on an infinite plane with infinite (smooth) zoom. Try the applet to get a sense of this. Save and animate graph states, see the movie pages for an example. Complete cinematographic control over nodes, edges, and the camera for more powerful dynamic graph visualization. Export and capture EPS/PDF/JPG/SVG/... Various layout algorithms and graph analysis commands. Talks to R to access pre-implemented statistical analysis routines. ” [Hewlett-Packard Labs]
  • Walrus - Graph Visualization Tool: “Walrus is a tool for interactively visualizing large directed graphs in three-dimensional space. By employing a fisheye-like distortion, it provides a display that simultaneously shows local detail and the global context.” [and many CAIDA Tools – GPL]
  • Graph INterface librarY a.k.a. GINY: “GINY implements a very innovative system for sub-graphing and allows for stunning visuals. GINY is open source, provides a number of layout algorithms, and is designed to be a very intuitive API.” [“The back-end of the package is currently using libraries from the CERN Colt project.” – “The visual side of GINY is implemented making extensive use of Piccolo.” – “A number of our layouts are derived from implementations from the JUNG project.” – “incorporated into Cytoscape”]
  • Mascopt: “The main objective of the Mascopt (Mascotte Optimization) project is to provide a set of tools for network optimization problems. Examples of problems are routing, grooming, survivability, or virtual network design. Mascopt will help implementing a solution to such problems by providing a data model of the network and the demands, libraries to handle networks and graphs, and ready to use implementation of existing algorithms or linear programs (e.g integral multicommodity flow).” [“Last Published: Thu, 17 Feb 2005 17:16:12 GMT”]
  • AGF - Algorithms for Graph Drawing: “ AGD offers a broad range of existing algorithms for two-dimensional graph drawing and tools for implementing new algorithms.rdquo; [quite old: “Last modification: Donnerstag, 04-Dez-2003 17:31:49 CET”]
  • Rox [in brazilian]
  • Pajek: “Program for Large Network Analysis” [Win32 but runs on Linux with Wine – “ Test version of Pajek 1.04 for Windows 32 (March 31, 2005 [...])”]
  • WilmaScope: “WilmaScope is a Java3D application which creates real time 3d animations of dynamic graph structures.” [quite old: “17th October 2003 - New release of WilmaScope (V2.2)”]
  • vrmlgraph (“3-D VRML graph drawing package in Java”): “An object oriented Java program available with source code for creating 3-D graph representations, complete with example main methods and extensions for performing the following: storage of Nodes and Edges of a 3-D graph in a single GraphData object; parsing descriptions of connected nodes from a graph program text file and populating a GraphData object with them. The nodes do not need to specify their x,y,z locations; performing 3-D spring embedding calculations to produce (often) aesthetically pleasing graphs from any input; center any 3-D graph about the origin; output a text file that describes the currently stored 3-D graph; output a VRML file that shows a 3-D view of the current graph.” [old: “April 5, 2001”]
  • Tulip: “a library for huge graph” [Linux? with C++ – “06-Jan-2004> Tulip version 2.0.1 released”]
  • P.I.G.A.L.E. - Public Implementation of a Graph Algorithm Library and Editor: “ We develop a graph editor and a C++ algorithm library essentially concerned with planar graphs. The editor is particularly intended for graph theoretical research.” [Linux? With C++ – “Last modified: Sat Dec 18 18:03:37 CET 2004” – interesting for algorithms]
  • Graphlet: “Graphscript, a Tcl/Tk based, extensible programming language for graph algorithms with user interfaces. Graphscript is implemented in C++ and GTL, an STL based library for programming with graphs.” [Win32 with C++ and Tcl/Tk – old: “Last modified Sunday, August 24, 1999 11:25 AM”]
  • Social Networks Visualiser for Linux “Social Network Visualiser (SocNetV) is a GNU program which intends to help anyone, using Linux OS, to visualise graphically and play with social networks.” [Linux with C++? – “v0.37, Feb, 23 2005”]


  • JFreeChart: “ JFreeChart is a free Java class library for generating charts, including: pie charts (2D and 3D); bar charts (regular and stacked, with an optional 3D effect); line and area charts; scatter plots and bubble charts; time series, high/low/open/close charts and candle stick charts; combination charts; Pareto charts; Gantt charts; wind plots, meter charts and symbol charts; wafer map charts. Other features offered by JFreeChart: complete source code is included, under the terms of the GNU Lesser General Public Licence; access to data from any source via dataset interfaces; support for multiple secondary axes and datasets; tooltips, zooming, printing; direct export to PNG and JPEG; export to PDF via iText and SVG via Batik (both described in the JFreeChart Developer Guide); support for servlets, JSP (thanks to Cewolf), applets or client applications; comprehensive Javadocs.” [LGPL]

Geospacial data

  • OpenMap - Open Systems Mapping Technology: “OpenMapTM is a Java BeansTM based toolkit for building applications and applets needing geographic information. Using OpenMap components, you can access data from legacy applications, in-place, in a distributed setting. At its core, OpenMap is a set of Swing components that understand geographic coordinates. These components help you show map data, and help you handle user input events to manipulate that data.”
  • GeoVISTA Studio: “GeoVISTA Studio is an open software development environment designed for geospatial data. Studio is a programming-free environment that allows users to quickly build applications for geocomputation and geographic visualization.”

Handling of images (file formats)

  • Batik: “ Batik is a Java technology based toolkit for applications or applets that want to use images in the Scalable Vector Graphics (SVG) format for various purposes, such as viewing, generation or manipulation.” [Apache]
  • VectorGraphics: “The VectorGraphics package of FreeHEP Java Library enables any Java program to export to a variety of vector graphics formats as well as bitmap image formats. Among the vector formats are PostScript, PDF, EMF, SVF, SWF and CGM, while the image formats include GIF, PNG, JPG and PPM.” [a library]

GUI toolkit

  • Eclipse SWT - Standard Widget Toolkit: “SWT is a widget toolkit for Java designed to provide efficient, portable access to the user-interface facilities of the operating systems on which it is implemented.” [around Eclipse]
  • XUI: “XUI is a Java and XML framework for building rich client, desktop and mobile applications. The framework can save you up to 60% of the code typically needed to build an application. The result is real savings in development time and maintenance costs and greater stability.” [“XUI 1.0.4 has been promoted to the latest stable version as of 6th January 2005.&rduqo;]
  • Buoy - A Better User Interface Toolkit: “Buoy is a library for creating user interfaces in Java programs. It is built on top of Swing, but provides a completely new set of classes to represent graphical components. It offers many advantages over using Swing directly, including: a much simpler, cleaner, and more consistent API; a better mechanism for laying out interface components; a far more powerful event handling mechanism, which is based on dynamic binding of arbitrary methods as event listeners; built in support for serializing user interfaces as XML, then reconstructing them again. ” [“The current version of Buoy is 1.4, released April 9, 2005.”]
  • Swank - Open-Source, Scriptable GUI Tool Kit: “Swank is a graphical user interface toolkit implemented entirely in JAVAtm. Swank provides the companion to Jacl, the Tcl interpreter implemented in JAVAtm. Thus, Jacl/Swank forms the analogous pair to Tcl/Tk and can be used to rapidly script user interfaces. The goal of the design of Swank is to provide a toolkit that will be familiar to Tk users, provide a reasonable level of backwards compatibility with Tk, and provide access to the generally greater, as compared to Tk, feature level of the Swing components.” [a kind of Tcl/Tk couple in Java]
  • japi - java application programming interface: “japi is an open source free software GUI toolkit, which makes it easy to develop platform independent applications. Written in JAVA and C, japi provides the JAVA AWT Toolkit to non object oriented Languages like C, Fortran, Pascal and even Basic. ” [“26 Feb 2003 (V1.0.6)”]

Posted by Jean-Philippe on April 11, 2005 34 Comments, 804 TrackBacks

Entries on this page

Entries by month

Entries by category