JCCKit logo

powered by SourceForge.net Logo

Chart Construction Kit for the Java™ platform

The JCCKit is a small (< 100Kb) library and a very flexible framework for creating scientific charts and plots.

JCCKit is written for the JDK™ 1.1.8 platform (except of a Graphics2D renderer). Thus, it is suitable for scientific Applets and for PDA's running a PersonalJava™ implementation.

JCCKit is an offspring of my lecture The Art of Developing Scientific Java Applets held at the University of Basel, Switzerland, in the winter semester 2002/03. See lecture 12 and 13 which explains the basic architecture of JCCKit.

Purpose and Features

The main purpose is to provide a flexible kit for writing applets and application with the need for visualizing scientific data. If you are looking for a lean scientific chart and plot library without all the unwanted bells and whistles of the heavy competitors try JCCKit.

The key features of JCCKit are:

  • small (< 100Kb jar file)
  • highly configurable due to a sophisticated configuration concept
  • extensible (1/3 of all classes are interfaces or abstract classes.)
  • automatic updating if data changes
  • easy programming of dynamic charts and plots
  • automatic rescaling if canvas size changes
  • out-of-the-box applet for presenting static data on a web page without needing knowledge of the Java™ programming language.
  • automatically generates a legend
  • supports
    • logarithmic axes
    • non-numerical tic labels
    • different line styles, colors, and thicknesses
    • different symbols
    • different fonts, font styles, colors, and text orientations
    • vertical and horizontal error bars
    • vertical, horizontal, and stacked bar charts
  • supported devices
    • AWT Graphics context
    • AWT Graphics2D context (needs Java™ 2 platform)
    • Off-Screen image creation (need J2SE 1.4 or higher) (see section 2.5 of the User Guide)
    • SVG (Scalable Vector Graphics)
See the Examples page to get an impression of what is possible. To learn more about JCCKit have a look into the User Guide.

All releases on the Download page include:

  • Compiled classes for immediate use.
  • Source code.
  • Complete content of the JCCKit Home Page including
    • Examples
    • User Guide
    • API documentation

Release History

JCCKit V1.1

This is a major release from 12/18/2004.

  • GraphicsPlotCanvas: Double-buffering can be switched off to allow off-screen image creation.

  • New example: Off-screen image creation
  • Configuration Manual

JCCKit V1.0.1

This is a minor release from 9/11/2004.

  • BarFactory: Allow bars going into negative direction.

JCCKit V1.0

This is a final release from 3/21/2004.

  • An annotation layer (with any kind of graphics or text) can be added to a Plot with the method setAnnotation()
  • The coordinate system of a Plot instance can be changed with the method setCoordinateSystem().
  • A graphical marker object can be add to GraphicsPlotCanvas with setMarker(). It will be drawn on top of the plot. Useful in the case of mouse interactions.
  • Automatic tic calculation of linear AxisParameter improved.

  • The method connect() of PlotCanvas and Plot no longer throws a NullPointerException if fed with null. Thus a Plot instance can be diconnected from a DataPlot just by connecting it with null.
  • Class jcckit.renderer.Transformation transformed device independent coordinates incorrectly into Java coordinates as observed in Microsofts Java VM.
  • Creating double buffers in GraphicsPlotCanvas caused exceptions if resized below zero.

JCCKit V0.999

This is a major release from 1/18/2004.

  • The Renderer for SVGPlotter, GraphicsPlotCanvas, and Graphics2DPlotCanvas are generated by a Factory Method (see method setRenderer()).
  • Swing wrapper components for GraphicsPlotCanvas and Graphics2DPlotCanvas (see method getGraphicsJPanel())
  • Non-numerical tic labels due to interface TicLabelFormat and class TicLabelMap.

JCCKit V0.99

This is a major release from 5/3/2003.

  • Graphics2DRenderer
  • Removing methods insertAt and removeAt in Polygon, GraphicalComposite, and Curve
  • AttributesHint and ShapeAttributesHint
  • ConfigParameters with boolean type
  • Changes in SimpleCurveFactory and SimpleCurve lead to different configuration parameters
  • Plot.transform(): Backward transformation from DICS to DCS
  • GraphicsPlotCanvas.mapCursorPosition(): Maps cursor position onto DICS
  • ErrorBarFactory

  • GraphicsRenderer: Rotated text does not appear on black background
  • Plot: curve generation: Now correct hint propagation is implemented

  • more examples
  • User Guide continued

JCCKit V0.91

This is a minor release from 4/23/2003.

  • More powerful Format class: Now allows plain text before and after format statement.

  • Bug #726146: Legend
  • Throw NullPointerException if a null is added to GraphicalComposite

  • User Guide started

JCCKit V0.9

This is the initial release from 4/12/2003.