To render multilingual text, using logical fonts, 2D now takes advantage of installed host OS fonts for all supported writing systems. For example, if you run in a Thai locale environment, but have Korean fonts installed, both Thai and Korean are rendered. The J2RE now also automatically detects physical fonts that are installed into its lib/fonts/fallback directory and adds these physical fonts to all logical fonts for 2D rendering.
AWT now uses the Unicode APIs on Windows 2000/XP. As a result, some of its components can handle text without being restricted by Windows locale settings. For example, AWT text components can accept and display text in the Devanagari writing system regardless of the Windows locale settings.
Refer to the documentation at http://java.sun.com/j2se/1.5.0/docs/guide/intl/index.html.
Ports are now available on all platforms (RFE 4782900).
MIDI device i/o is now available on all platforms (RFE's 4812168, 4782924).
Optimized direct audio access is implemented on all platforms (RFEs 4908240 and 4908879). It is enabled by default on systems which offer native mixing (i.e. Linux ALSA with hardware mixing, Solaris Mixer enabled, Windows DirectSound).
The new real-time Sequencer works with all MIDI devices and allows unlimited Transmitters (RFE 4773012).
The sound.properties configuration file allows choice of default devices (RFE 4776511). For details, see MidiSystem and AudioSystem for details.
MidiDevices can query connected Receivers and Transmitters (RFE 4931387, methods MidiDevice.getReceiver and MidiDevice.getTransmitter).
AudioFormat, AudioFileFormat, and MidiFileFormat now have properties that allow further description and qualification of the format (RFEs 4925767 and 4666845).
A set of ease-of-use methods allow easier retrieval of lines from AudioSystem (RFE 4896221).
The Sequencer interface is extended with loop methods, for seamless looping of specific portions of a MIDI sequence (RFE 4204105).
Java Sound no longer prevents the VM from exiting (bug 4735740).
Refer to the documentation at http://java.sun.com/j2se/1.5.0/docs/guide/sound/index.html.
Added 2D features include expanded Linux and Solaris printer support, new methods for creating fonts from files and streams, and new methods related to VolatileImages and hardware acceleration of images. A number of internal changes to text rendering code greatly improve its robustness, performance, and scalability. Other performance work includes hardware-accelerated rendering using OpenGL (disabled by default).
Refer to the documentation at http://java.sun.com/j2se/1.5.0/docs/guide/2d/index.html.
The Image I/O system now has readers and writers for BMP and WBMP formats.
Refer to the documentation at http://java.sun.com/j2se/1.5.0/docs/guide/imageio/index.html.
Version 1.5.0 features many AWT enhancements and bug fixes, including some that have often been requested by our customers. Most notably, the new MouseInfo class makes it possible to determine the mouse location on the desktop. New Window methods make it possible to specify the default location for a newly created window (or frame), appropriate to the platform. Another Window enhancement makes it possible to ensure that a window (or frame) is always on top. (This feature does not work for some window managers on Solaris/Linux.) In the area of data transfer, the new DropTargetDragEvent API allows the drop target to access transfer data during the drag operation.
With the 1.4.2 release we provided two new look and feels for Swing: XP and GTK. Rather than taking a break, in 1.5.0 we're providing two more look and feels: Synth, a skinnable look and feel, and Ocean, a new theme for Metal. Beyond look and feels, we've added printing support to JTable, which makes it trivial to get a beautiful printed copy of a JTable. Lastly, after seven years, we've made jFrame.add equivalent to jFrame.getContentPane().add().
Refer to the documentation at Swing http://java.sun.com/j2se/1.5.0/docs/guide/swing/index.html.