G 2D Graphics Library and Rendering Engine for Java › Click to download › Updated Info
| Download Now
| Tell a Friend
G is a generic graphics library built on top of Java 2D. Client applications can use at high level, make scene graph oriented 2D graphics.
G Graphics Library (Java) Features
- Layered graphics with visibility support
- Object oriented hierarchical scene graphs
- World and device coordinate support
- Flexible 3D space world extents
- Powerful rendering style support
- Powerful object detection functions
- Smart annotations
- Interaction support
- Raster image support
- Embedded Swing component support
- Utilities for geometry generation and transformations
- Image export and printing support
- Many Java versions: JDK 1.2, 1.3, 1.4 and 1.5 compatible
- Light weight (~80kB), self contained, simple to use
- Free, open source (LGPL), OSI certified
Create a GWindow as top level graphics node and link to a Swing panel. Add a GScene which defines viewport and world extents. Build the graphics hierarchy by GObjects and add to the scene. GObjects consists of GSegments (polylines) and other GObjects. Rendering information is supplied by GStyle objects added to any level of the graphics. Annotations (GText), raster images (GImage) and AWT/Swing components (GComponent) are added to segments with specified position hints. Interactions are implemented through the GInteraction interface.
The graphics is double buffered to keep rendering smooth. The implementation makes heavy use of regions to keep track of objects and damage area in order to keep the rendering pipeline as efficient as possible.
G 2D Graphics Library and Rendering Engine for Java can downloaded from G library home page.
Here is one simple code example:
* (C) 2004 - Geotechnical Software Services
* This code is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
* This code is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public
* License along with this program; if not, write to the Free
* Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
* MA 02111-1307, USA.
* G demo program. Demonstrates:
* <li> Basic graphic window and scene setup
* <li> Setting canvas background color
* <li> Basic scene composition
* <li> The use of style
* <li> Example geometry generation
* <li> Simple annotation with positioning
* @author <a href="mailto:firstname.lastname@example.org">Jacob Dreyer</a>
public class Demo1 extends JFrame
super ("G Graphics Library - Demo 1");
// Create the graphic canvas
GWindow window = new GWindow(new Color (210, 235, 255));
// Create scene with default viewport and world extent settings
GScene scene = new GScene (window);
// Create the graphics object and add to the scene
GObject helloWorld = new HelloWorld();
setSize (new Dimension (500, 500));
* Defines the geometry and presentation for the sample
* graphic object.
public class HelloWorld extends GObject
private GSegment star_;
star_ = new GSegment();
GStyle starStyle = new GStyle();
starStyle.setForegroundColor (new Color (255, 0, 0));
starStyle.setBackgroundColor (new Color (255, 255, 0));
GText text = new GText ("HelloWorld", GPosition.MIDDLE);
GStyle textStyle = new GStyle();
textStyle.setForegroundColor (new Color (100, 100, 150));
textStyle.setFont (new Font ("Dialog", Font.BOLD, 48));
* This method is called whenever the canvas needs to redraw this
* object. For efficiency, prepare as much of the graphic object
* up front (such as sub object, segment and style setup) and
* set geometry only in this method.
public void draw()
star_.setGeometry (Geometry.createStar (220, 220, 200, 80, 15));
public static void main (String args)