The Abstract Windowing Toolkit Group

This group is chartered with maintaining and enhancing the AWT.


The AWT (Abstract Window Toolkit) provides an interface between a Java application and a native windowing system. AWT comprises the event handling system as well as a set of so-called heavyweight GUI components, including the top-level components such as frames and dialogs. It also has a simple set of widgets for use in situations where next level of more sophisticated GUI tools is not available.


AWT has a very old code base, and has a complicated structure. Parts of the code are intermingled with other low-level parts of JDK such as 2D, i18n, and Input Methods. The majority of the AWT code consists of the directories shown below.

The native parts of the code base are written in C and C++. Most of the code is platform-specific and resides in the corresponding directories: src/solaris/ or src/windows/

Building and Rebuilding

The main result of the AWT building is a version of library in Linux or Solaris, or awt.dll in MS Windows, and a set of classes. Additionally, AWT builds the splashscreen library. After you have completely built OpenJDK, you may modify and recompile parts by starting from the root of the make tree. However, local changes in the AWT code may be recompiled faster from the following directories depending on your platform:

For more details see the previous paragraph.


All fixes must be tested, even seemingly trivial ones. Normally, one should run all existing related regression tests, and alsso a dedicated test written particularly for the modified code. Sometimes an appropriate test may be found in the existing pool of regression tests in the test/java/awt subtree. If one doesn't exist, it's often best to write a new test using a template, then run it with the jtreg script. In general it's better to have an automated test as opposed to on that needs to be run manually.

Note that in OpenJDK as it is first released, one will not find many tests in the test/java/awt area. We are working on this, however, and eventually we will move most of them from our work out into the open.

And the final note: remember that AWT should work on as many platforms as possible. Try not to break linux x86_64 fixing for solaris sparc:-)