<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
  <head>
    <title>AWT Enhancements</title>
  </head>

<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#000077" ALINK="#FF
0000">
<TABLE summary="layout" BORDER="0" WIDTH="100%">

<TR>

<TD WIDTH="60">

   <IMG SRC="../../../images/javalogo52x88.gif" ALT="Java" BORDER=0 WIDTH=52 HEIGHT
=88>

</TD>

<TD>

<center>

           <h1>AWT Enhancements in the Java<sup><font size=-2>TM</font></sup> 2
SDK,
               v1.5</h1>

</center>

</TD>

<TD ALIGN=RIGHT VALIGN=TOP>

   <font size="-1"><a href="../../index.html">Documentation Contents</a></font>

</TD>

</TR>

</TABLE>

<blockquote>
<blockquote>
<a href=#awtMajor>Major Changes</a><br>
<a href=#window>Window Bugfixes and Enhancements</a><br>
<a href=#dnd>DnD and Data Transfer Bugfixes and Enhancements</a><br>
<a href=#layout>Layout Bugfixes</a><br>
<a href=#misc>Miscellaneous Bugfixes</a><br>
<a href=#knownBugs>Known Bugs and Issues</a><br>
</blockquote>
<hr>


<a name=awtMajor><h2>Major Changes</h2></a>
<blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4615479.html">
      <b>4615479</b></a>:
XToolkit on Solaris and Linux</h3>
<blockquote>
In this release, AWT has been reimplemented on the Solaris
and Linux platforms.  It is possible to force the Motif toolkit
on Linux or XAWT on Solaris.  This is done either by setting
the <code>AWT_TOOLKIT</code> variable or using the
<code>-Dawt.toolkit</code> command line parameter.
The value for XAWT is <code>sun.awt.X11.XToolkit</code> and the
value for Motif is <code>sun.awt.motif.MToolkit</code>. 
For more information, see the <a href=xawt.html>XToolkit
on Solaris/Linux</a> note.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4009555.html">
      <b>4009555</b></a>:
      Obtaining the mouse location on the desktop</h3>
<blockquote>
API has been added to obtain the mouse location on the desktop. 
The new
<a href="../../../api/java/awt/PointerInfo.html">PointerInfo</a>
class describes the pointer coordinates and the
associated <code>GraphicsDevice</code> object at the moment the
<code>PointerInfo</code> instance is created.
<code>PointerInfo</code> has the following methods:
<ul>
<li><a href="../../../api/java/awt/PointInfo.html#getDevice()">GraphicsDevice getDevice()</a>
<li><a href="../../../api/java/awt/PointInfo.html#getLocation()">Point getLocation()</a>
</ul>
<p>
The new
<a href="../../../api/java/awt/MouseInfo.html">MouseInfo</a> class
has information about the current location of the mouse pointer.
<code>MouseInfo</code> has two methods:
<ul>
<li><a href="../../../api/java/awt/MouseInfo.html#getPointerInfo()">PointerInfo getPointerInfo()</a>
<li><a href="../../../api/java/awt/MouseInfo.html#getNumberOfButtons()">int getNumberOfButtons</a>
</ul>
<p>
Other new methods:
<ul>
<a href="../../../api/java/awt/Component.html#getMousePosition()">java.awt.Component.getMousePosition()</a>
<br>
<a href="../../../api/java/awt/Container.html#getMousePosition(boolean)">java.awt.Container.getMousePosition(boolean)</a>
<br>
<a href="../../../api/java/awt/Toolkit.html#getMouseInfoPeer()">java.awt.Toolkit.getMouseInfoPeer</a>
</blockquote>

</blockquote>
<a name=window><h2>Window Bugfixes and Enhancements</h2></a>
<blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4632143.html">
      <b>4632143</b></a>:
Window, Frame or Dialog Always on Top</h3>
<blockquote>
New API has been added to ensure that a particular
<code>Window</code>, <code>Frame</code> or <code>Dialog</code> is
always on top of the desktop.  This is useful when implementing
certain GUI elements, such as tool boxes, notification or information
applets, and other desktop-enhancing features.  The new and
modified API includes:
<ul>
<li><a href="../../../api/java/awt/Window.html#isAlwaysOnTop()">isAlwaysOnTop()</a>
<li><a href="../../../api/java/awt/Window.html#setAlwaysOnTop(boolean)">setAlwaysOnTop(boolean)</a>
<li><a href="../../../api/java/awt/Window.html#addPropertyChangeListener(java.beans.PropertyChangeListener)">addPropertyChangeListener(PropertyChangeListener)</a>
<li><a href="../../../api/java/awt/Window.html#addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)">addPropertyChangeListener(String, PropertyChangeListener)</a>
<blockquote>
The <code>add<i>XXX</i></code> methods have been modified to support
setting a property change listener on the window's <code>alwaysOnTop</code>
state.
</blockquote>
<li><a href="../../../api/java/awt/AWTPermission.html">java.awt.Permission</a>
<blockquote>
The new <code>setWindowAlwaysOnTop</code> permission has been added.
</blockquote>
</ul>
<p>
Depending on the system setup, always-on-top Windows, Frames or Dialogs
may not be supported.  They are supported on Microsoft Windows, Linux and
Solaris running GNOME2/Metacity, as well as Linux running KDE/kwin.
They are not supported on Solaris running CDE/dtwm.  It is possible that
always-on-top windows do not work on Linux or Solaris running session
and window managers other than those mentioned above.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4102292.html">
      <b>4102292</b></a>:
New API to Specify Default Window Location by Platform</h3>
<blockquote>
Two new methods and one new property allow the user to specify
the default location for a new <code>Window</code>, appropriate to
the platform.  This is especially important for X11.  The new
api includes:
<ul>
<li><a href="../../../api/java/awt/Window.html#setLocationByPlatform(boolean)">Window.setLocationByPlatform(boolean)</a>
<li><a href="../../../api/java/awt/Window.html#isLocationByPlatform()">Window.isLocationByPlatform</a>
<li>Window.isLocationByPlatform</a> (a property)
</ul>
Note that the <code>locationByPlatform</code> property must be set
to true for the underlying window manager to tile the window according
to its own logic.  Otherwise, AWT won't know whether the window was
put at 0,0 intentionally or was just unspecified and the window will
be placed at the upper-left-hand corner of the screen.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4101435.html">
      <b>4101435</b></a>:
Window/Dialog/Frame.setLocation doesn't always work as expected</h3>
<blockquote>
The location and size of Windows, Dialogs and Frames, is under the control of
the desktop's window management system, not the application or the toolkit.
The window manager is free to ignore or modify a
window placement request.  Therefore, when calling Window.setLocation(x, y),
you can't rely on the Window being moved to location (x, y).  The same
situation exists for Window.setSize and Window.setBounds. 
The Window documentation has been clarified to explain this.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4401846.html">
      <b>4401846</b></a>:
New _JAVA_AWT_WM_STATIC_GRAVITY Environment Variable</h3>
<blockquote>
Certain window managers position AWT windows incorrectly.  For example,
a window that is requested to be moved to (0,0) will, under some
window managers, be positioned so that the window's title and
left border are off-screen.  This is because there are two schools
of window managers that disagree on the interpretation of the
ICCCM specification for the ConfigureRequest requests that X11
programs make to position their windows.
<p>
To address this issue, the <code>_JAVA_AWT_VM_STATIC_GRAVITY</code>
environment variable has been added so that a power user can indicate
that his window manager implements the StaticGravity behavior.
</blockquote>

</blockquote>
<a name=dnd><h2>DnD and Data Transfer Bugfixes and Enhancements</h2></a>
<blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4638443.html">
      <b>4638443</b></a>: XDnD Support</h3>
<blockquote>
As of this release, the
<a href="http://www.newplanetsoftware.com/xdnd/">XDnD Protocol</a>
support
has been implemented as part of the data transfer system.  Prior to
this release, only the Motif DnD protocol was supported on X11.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4378091.html">
      <b>4378091</b></a>:
New DropTarget.getTransferable method
</h3>
<blockquote>
The new 
<a href="../../../api/java/awt/dnd/DropTargetDragEvent.html#getTransferable()">java.awt.dnd.DropTargetDragEvent.getTransferable</a>
method enables the drop target to access transfer data
during a drag operation.
<p>
This also fixes bug
<a
href="http://developer.java.sun.com/developer/bugParade/bugs/4248542.html">
      <b>4248542</b></a>:
DropTargetListener can't access the transferable in dragOver
and dragEnter.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4259272.html">
      <b>4259272</b></a>:
Notification of Clipboard contents changes is now supported</h3>
<blockquote>
Previously, the Java clipboard API didn't allow an efficient way to track
changes to the set of DataFlavors available on the clipboard or notify
interested parties about those changes.  API has been added for this purpose:
<ul>
<li><a href="../../../api/java/awt/datatransfer/Clipboard.html#addFlavorListener(java.awt.datatransfer.FlavorListener)">
    addFlavorListener(FlavorListener)</a>
<li><a href="../../../api/java/awt/datatransfer/Clipboard.html#removeFlavorListener(java.awt.datatransfer.FlavorListener)">
    removeFlavorListener(FlavorListener)</a>
<li><a href="../../../api/java/awt/datatransfer/Clipboard.html#getFlavorListeners()">
    getFlavorListeners()</a>
</ul>
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4287795.html">
      <b>4287795</b></a>:
New methods for querying information in a Clipboard</h3>
<blockquote>
Three new methods have been added:
<ul>
<li><a href="../../../api/java/awt/datatransfer/Clipboard.html#getAvailableDataFlavors()">DataFlavor[] getAvailableDataFlavors()</a> returns the
<code>DataFlavor</code>s currently available on the clipboard.
<br>
<li><a href="../../../api/java/awt/datatransfer/Clipboard.html#isDataFlavorAvailable(java.awt.datatransfer.DataFlavor)">boolean isDataFlavorAvailable(DataFlavor)</a> returns true if
the specified data flavor is available.
<br>
<li><a href="../../../api/java/awt/datatransfer/Clipboard.html#getData(java.awt.datatransfer.DataFlavor)">Object getData(DataFlavor)</a> returns the
data in the specified data flavor.
</ul>
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4790833.html">
      <b>4790833</b></a>:
Memory Usage No Longer Shoots Up using Clipboard.getContents</h3>
<blockquote>
Prior to this release, <code>Clipboard.getContents</code> fetched
clipboard data in all provided formats for which a mapping to the
corresponding data flavor in the default flavor map exists.
If there were a lot of formats and the data were large, a lot
of memory was consumed with the fetched data in different formats.
Thanks to the new methods introduced with bug fix
<a 
href="http://developer.java.sun.com/developer/bugParade/bugs/4287795.html">
4287795</a>, this problem has been fixed.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4415175.html">
      <b>4415175</b></a>:
New API to Globally Change the DnD Gesture Motion Threshold</h3>
<blockquote>
The drag motion gesture threshold represents the number of pixels
the cursor is dragged before the data transfer system initiates
a drag operation.  Prior to this release, this was hard-coded to 5
pixels.  As of release 1.5, there is support for picking up the
desktop properties for drag sensitivity and mapping it to the
threshold, and new API that allows users to get and change this
threshold.  The new API includes:
<ul>
<li><a href="../../../api/java/awt/dnd/DragSource.html#getDragThreshold()">java.awt.dnd.DragSource.getDragThreshold()</a>
<li>java.awt.dnd.drag.threshold</a> (a property)
<li><a href="../../../api/java/awt/dnd/MouseDragGestureRecognizer.html">java.awt.dnd.MouseDragGestureRecognizer</a> (updated class spec)
</ul>
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4712068.html">
      <b>4712068</b></a>:
DnD Usability Issue for Dragging Text</h3>
<blockquote>
Prior to this release, the hotspot of the drop icons used on
X platforms was
located at the middle of the icon.  When dragging text, the
text cursor moves to indicate the current drop location, but
this was obscurbed by the drop icon itself.  For this release,
the drop cursors used on X platforms have been changed to 
point to the upper-left corner of the drop icon. 
The corresponding hotspots have been changed accordingly.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4191708.html">
      <b>4191708</b></a>:
Clarification in spec for several java.awt.dnd.DropTarget methods</h3>
<blockquote>
The doc has been clarified with respect to passing in a null
parameter for the following <code>java.awt.dnd.DropTarget</code> methods:
<ul>
<li><a href="../../../api/java/awt/dnd/DropTarget.html#dragEnter(java.awt.dnd.DropTargetDragEvent)">dragEnter(DropTargetDragEvent)</a>
<br>
<li><a href="../../../api/java/awt/dnd/DropTarget.html#dragOver(java.awt.dnd.DropTargetDragEvent)">dragOver(DropTargetDragEvent)</a>
<br>
<li><a href="../../../api/java/awt/dnd/DropTarget.html#dropActionChanged(java.awt.dnd.DropTargetDragEvent)">dropActionChanged(DropTargetDragEvent)</a>
<br>
<li><a href="../../../api/java/awt/dnd/DropTarget.html#drop(java.awt.dnd.DropTargetDragEvent)">drop(DropTargetDragEvent)</a>
<br>
<li><a href="../../../api/java/awt/dnd/DropTarget.html#dragExit(java.awt.dnd.DropTargetDragEvent)">dragExit(DropTargetDragEvent)</a>
</ul>
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4819437.html">
      <b>4819437</b></a>:
DragSourceListener.dragExit is now called in a consistent way</h3>
<blockquote>
<!-- Previously, <code>DragSourceListener.dragExit(DragSourceEvent)</code>
was called whenever the current drop site rejected the drag. 
If the drop site rejected the drag
as soon as the drag entered the drop site,
<code>DragSourceListener.dragExit</code> was
called and no other <code>DragSourceListener</code> method was called. 
For this release, the behavior was changed to call <code>dragExit</code>. -->
The class specification for the
<a href="../../../api/java/awt/dnd/DragSourceAdapter.html">DragSourceAdapter</a> and
<a href="../../../api/java/awt/dnd/DragSourceAdapter.html">DragSourceAdapter</a>
classes, and the documentation for the 
<a href="../../../api/java/awt/dnd/DragSourceAdapter.html#dragExit()">DragSourceAdapter.dragExit</a> and
<a href="../../../api/java/awt/dnd/DragSourceListener.html#dragExit()">DragSourceListener.dragExit</a>
methods have been updated to clarify the notion that the drop site is
associated with the previous call to <code>dragEnter</code>.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4654688.html">
      <b>4654688</b></a>:
SystemFlavorMap Methods Now Consistent with Documentation</h3>
<blockquote>
The <code>SystemFlavorMap</code> class is
used to store mappings between native formats and Java data
flavors in order to support data transfer between native and
Java applications.  The documentation for the
<a href="../../../api/java/awt/datatransfer/SystemFlavorMap.html#getNativesForFlavor(java.awt.datatransfer.DataFlavor)">SystemFlavorMap.getNativesForFlavor(DataFlavor)</a>
method has been clarified to say that a <code>DataFlavor</code>
(or a native format) is known if and only if it has at least one
static mapping associated with it.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4123385.html">
      <b>4123385</b></a>:
Clarification of Behavior for DragSourceDragEvent and DragSourceDropEvent
Constructors</h3>
<blockquote>
Previously, several constructors in the
<code>java.awt.dnd.DragSourceDragEvent</code> and
<code>java.awt.dnd.DragSourceDropEvent</code>
classes were throwing unspecified <code>IllegalArgumentException</code>s.
In general, these constructors didn't describe the behavior for null arguments.
For this release, the specification for the following constructors 
has been clarified to explain the behavior for null arguments
and to document the <code>IllegalArgumentException</code> that may occur.
<ul>
<li><a href="../../../api/java/awt/dnd/DragSourceDragEvent.html#DragSourceDragEvent(java.awt.dnd.DragSourceContext, int, int, int)">DragSourceDragEvent(DragSourceContext, int int, int)</a>
<li><a href="../../../api/java/awt/dnd/DragSourceDragEvent.html#DragSourceDragEvent(java.awt.dnd.DragSourceContext, int, int, int, int, int)">DragSourceDragEvent(DragSourceContext, int int, int, int, int)</a>
<li><a href="../../../api/java/awt/dnd/DragSourceDropEvent.html#DragSourceDropEvent(java.awt.dnd.DragSourceContext)">DragSourceDropEvent(DragSourceContext)</a>
<li><a href="../../../api/java/awt/dnd/DragSourceDropEvent.html#DragSourceDropEvent(java.awt.dnd.DragSourceContext, int, boolean)">DragSourceDropEvent(DragSourceContext, int, boolean)</a>
<li><a href="../../../api/java/awt/dnd/DragSourceDropEvent.html#DragSourceDropEvent(java.awt.dnd.DragSourceContext, int, boolean, int, int)">DragSourceDropEvent(DragSourceContext, int, boolean, int, int)</a>
</ul>
</blockquote>

</blockquote>
<a name=layout><h2>Layout Bugfixes</h2></a>
<blockquote>

<h3>GridBagLayout Bugfixes</h3>
<blockquote>
<b>GridBagLayout</b>: Several bugfixes have been implemented for
GridBagLayout.  Note that two of these bugs listed apply to the
documentation only.  The most significant bugfixes include:
<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4254022.html">
      <b>4254022</b></a>:
More than 512 horizontal or vertical components are now possible in a
GridBagLayout</h3>
<blockquote>
Previously, GridBagLayout had been implemented with a hard-coded
width and height limit of 512.  This is now allocated dynamically and
the MAXGRIDSIZE constant is no longer used.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4532201.html">
      <b>4532201</b></a>:
GridBagLayout.lookupConstraints doc is clarified</h3>
<blockquote>
Documentation was added to clarify what happens when the specified
Component is not in the grid bag layout.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4618355.html">
      <b>4618355</b></a>:
Doc for GridBagLayout.gridwidth/gridheight is clarified</h3>
<blockquote>
The class spec for GridBagLayout.gridwidth/gridheight was
confusing in its description of REMAINDER and RELATIVE.  This
has been corrected.
</blockquote>
</blockquote>

<h3>FlowLayout Bugfixes</h3>
<blockquote>
<b>FlowLayout</b>: Several documentation bugs have been fixed for
FlowLayout
<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4586806.html">
      <b>4586806</b></a>:
FlowLayout spec is corrected regarding alignment</h3>
<blockquote>
Previously, the class spec stated that components are centered
on the line.  Actually, the <code>align</code> property determines
how the components are laid out.  The doc has been corrected.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4881919.html">
      <b>4881919</b></a>:
FlowLayout class spec no longer implies that components are always
left to right</h3>
<blockquote>
The FlowLayout class spec was written before the ability
to go right to left was added.  Therefore it assumed that left to
right was the only possible orientation.  The doc has been corrected.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4587456.html">
      <b>4587456</b></a>:
Corrected spec for FlowLayout constructor</h3>
<blockquote>
Previously, the doc for the FlowLayout constructor neglected to
mention that the hgap and vap were applied to the spacing between the
components and the container border as well as between the components.
The documentation has been corrected.
</blockquote>
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4172932.html">
      <b>4172932</b></a>:
New methods to get constraints for children in BorderLayout</h3>
<blockquote>
Three public methods have been added to <code>BorderLayout</code>,
one to get the constraints for a component, and two different ways
to get the component for a given constraint (one takes component
orientation into account and the other doesn't).  The new methods
are:
<ul>
<li><a href="../../../api/java/awt/BorderLayout.html#getLayoutComponent(java.lang.Object)">Component getLayoutComponent(Object)</a>
<br>
<li><a href="../../../api/java/awt/BorderLayout.html#getLayoutComponent(java.awt.Container,java.lang.Object)">Component getLayoutComponent(Container, Object)</a>
<br>
<li><a href="../../../api/java/awt/BorderLayout.html#getConstraints(Component)">Object getConstraints(Component)</a>
</ul>
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4515041.html">
      <b>4515041</b></a>:
Clarified spec for GridLayout.layoutContainer regarding vgap and hgap params</h3>
<blockquote>
Previously, the spec for layoutContainer stated that the vgap and hgap
was added between each cell and between the first/last cell and the border.
In reality, the gaps are applied between the components only.  This has
been corrected in the doc.
</blockquote>

</blockquote>
<a name=misc><h2>Miscellaneous Bugfixes</h2></a>
<blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4533021.html">
      <b>4533021</b></a>:
New API to Change the Z-ordering of Children</h3>
<blockquote>
New API has been added to specify the z-ordering of children
in a <code>Container</code>. The two new <code>Container</code>
methods include:
<ul>
<li><a href="../../../api/java/awt/Container.html#getComponentZOrder(java.awt.Component, int)">getComponentZOrder(Component, int)</a>
<li><a href="../../../api/java/awt/Container.html#setComponentZOrder(java.awt.Component, int)">setComponentZOrder(Component, int)</a>
</ul>
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4370733.html">
      <b>4370733</b></a>:
AWTKeyStroke.getAWTKeyStroke(String) and toString are now symmetric</h3>
<blockquote>
Previously it was not possible to take the output from
<code>AWTKeyStroke.toString</code> and pass it to the
<code>getAWTKeyStroke</code> method.  This has been changed
so the methods
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4341785.html">
      <b>4341785</b></a>:
Clarify spec for several List methods</h3>
<blockquote>
The spec for the following <code>List</code> methods has been
clarified to state that unspecified behavior results when
the range is out of bounds:
<ul>
<li><a href="../../../api/java/awt/List.html#deselect(int)">deselect(int)</a>
<br>
<li><a href="../../../api/java/awt/List.html#setMultipleMode(boolean)">setMultipleMode(boolean)</a>
<br>
<li><a href="../../../api/java/awt/List.html#select(int)">select(int)</a>
</ul>
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4368570.html">
      <b>4368570</b></a>:
Clarify List spec regarding behavior of clicking on a selected item</h3>
<blockquote>
Previously, the class spec for List stated that clicking on an
unselected item selects it and clicking on a selected item de-selects it.
This is true only if the list is in multiple-selection mode.
In single-selection mode, any click on a list's item selects the
clicked item.  The spec has been clarified.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4082708.html">
      <b>4082708</b></a>:
      Clarified spec for the ContainerEvent.getContainer method</h3>
<blockquote>
The
<a href="../../../api/java/awt/event/ContainerEvent.html#getContainer()">ContainerEvent.getContainer</a>
method assumes that <code>source</code> is of type <code>Container</code>.
Previously, it casted the source to type <code>Container</code>
without first checking which could result in ClassCastException. 
The method has been changed to
return a value of null if the source isn't a <code>Container</code>.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4620715.html">
      <b>4620715</b></a>:
New KeyEvent codes for two standard Microsoft Windows keys.</h3>
<blockquote>
Two keys on a standard Microsoft Windows keyboard don't have Java keycodes &#151;
the windows key and the context menu key.  This impedes the ability to meet
508 requirements.  Therefore, the <code>java.awt.event.KeyEvent.VK_WINDOWS</code>
and <code>java.awt.event.KeyEvent.VK_CONTEXT_MENU</code> keycodes have been
added.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4829063.html">
      <b>4829063</b></a>:
Scrollbar now specifies that Scrollbar thumb may not be visible</h3>
<blockquote>
Previously, the doc for Scrollbar.getVisibleAmount and setVisibleAmount
did not say that sometimes the thumb might not be visible or accurately describe
what the scrollbar's range is used for.  The specification has been cleaned up.
This is a doc-only change.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4840172.html">
      <b>4840172</b></a>:
Behavior of KeyEvent.getKeyChar is clarified</h3>
<blockquote>
Use of KeyEvent.getKeyChar is explained in the KeyEvent class documentation,
but the doc for the method itself was brief.  The doc for getKeyChar has
been improved for this release.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4233061.html">
      <b>4233061</b></a>:
Clarify spec that ENTER doesn't fire an ActionEvent</h3>
<blockquote>
There is confusion among some developers that when the focus
is on a <code>Button</code>, pressing the ENTER key
doesn't fire an <code>ActionEvent</code>. This is correct behavior.
The SPACE bar fires an <code>ActionEvent</code>.  The
<a href="../../../api/java/awt/event/ActionEvent.html">ActionEvent</a>
class specification was updated to clarify this fact.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4221123.html">
      <b>4221123</b></a>:
New FileDialog constructors</h3>
<blockquote>
Three new <code>FileDialog</code> constructors have been added
that can specify a <code>Dialog</code> as the owner:
<ul>
<li><a href="../../../api/java/awt/FileDialog.html#FileDialog(java.awt.Dialog)">FileDialog(Dialog)</a>
<br>
<li><a href="../../../api/java/awt/FileDialog.html#FileDialog(java.awt.Dialog,java.lang.String)">FileDialog(Dialog, String)</a>
<br>
<li><a href="../../../api/java/awt/FileDialog.html#FileDialog(java.awt.Dialog,java.lang.String,int)">FileDialog(Dialog, String, int)</a>
</ul>
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4691481.html">
      <b>4691481</b></a>:
Updated spec for Robot.createScreenCapture</h3>
<blockquote>
Previously, the documentation for Robot.createScreenCapture didn't
mention that the mouse cursor is not included in the captured image.
This has always been true of Solaris, Linux, Windows and Mac OS X.
The documentation has been updated to reflect this information.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4704042.html">
      <b>4704042</b></a>:
New method for setting Insets</h3>
<blockquote>
A single method to set Insets has been added:
<a href="../../../api/java/awt/Insets.html#set(int, int, int, int)">
set(int, int, int, int)</a>.
</blockquote>

<h3><a
href="http://developer.java.sun.com/developer/bugParade/bugs/4492739.html">
      <b>4492739</b></a>:
Clarify InputEvent.ALT_MASK/BUTTON2_MASK and META_MASK/BUTTON3_MASK doc</h3>
<blockquote>
There is an overlap in the values for some of the InputEvent constants.
This is confusing because when calling KeyEvent.getModifiersExText(int)
and MouseEvent.getMouseEventModifiersText(int) the string returned for
KeyEvent.BUTTON2_MASK is "Alt" and the string returned for
KeyEvent.BUTTON3_MASK is "Meta".  For this release, documentation was
added to the InputEvent, KeyEvent and MouseEvent classes to clarify this.
</blockquote>

</blockquote>
<a name=knownBugs><h2>Known Bugs and Issues</h2></a>
<blockquote>

Here is a list of known problems you may encounter in release 1.5.

<h3>Metacity versioning</h3>
<blockquote>
We recommend using the latest build of Metacity (which is currently
2.6.2).  There were some bugs that occurred with versions prior
to 2.4.34  (problems with programmatic iconification, and non-resizable
frames, for example) that have since been fixed.
</blockquote>

<h3>Focus bugs when running applets</h3>
<blockquote>
There were focus-related bugs noticeable when running applets
in Mozilla in release 1.4.2 and earlier.  This includes:
<ul>
<li><a href="http://developer.java.sun.com/developer/bugParade/bugs/4907493.html">
      <b>4907493</b></a>:
Input focus not working with multiple applets
<li><a href="http://developer.java.sun.com/developer/bugParade/bugs/4902616.html">
      <b>4902616</b></a>:
The characters of a text field can't delete when doing Java Plug-in test
<li><a href="http://developer.java.sun.com/developer/bugParade/bugs/4877530.html">
      <b>4877530</b></a>:
Unable to input text into JTextField in 1.4.1_02
<li><a href="http://developer.java.sun.com/developer/bugParade/bugs/4806274.html">
      <b>4806274</b></a>:
The requestFocus method doesn't bring focus to the component on Netscape 7 on
Solaris
<li><a href="http://developer.java.sun.com/developer/bugParade/bugs/4816394.html">
      <b>4816394</b></a>:
Can't input anything to SpreadSheet
<li><a href="http://developer.java.sun.com/developer/bugParade/bugs/4837794.html">
      <b>4837794</b></a>:
Can't input charact to login AnswerCenter with Java applet
<li><a href="http://developer.java.sun.com/developer/bugParade/bugs/4902609.html">
      <b>4902609</b></a>:
Tab key can't work when doing Java test case 
</ul>
To solve this problem, the client side of the XEmbed protocol was implemented:
<ul>
<li><a href="http://developer.java.sun.com/developer/bugParade/bugs/4849238.html">
      <b>4849238</b></a>:
Add XEmbed support to AWT
<li><a href="http://developer.java.sun.com/developer/bugParade/bugs/4907325.html">
      <b>4907325</b></a>:
XEmbed should be implemented for the Motif toolkit
</ul>
However, the browser should support the server side of XEmbed in order
for it to work.  We recommend using the following browsers with Java:
<ul>
<li>On Linux, Mozilla community edition at least version 1.5 or higher.
<li>On Solaris, Sun Mozilla at least version 1.4 or higher.
</ul>
</blockquote>

<h3>

</blockquote>
<!-- ============================================================== -->

<HR SIZE=3 NOSHADE>



<TABLE summary="layout" BORDER="0" WIDTH="100%">

<TR VALIGN=TOP>



<TD>

<P><FONT SIZE="-2">

   <A HREF="../../../relnotes/SMICopyright.html">Copyright &#169;</A> 2001

   <A HREF="http://www.sun.com/">Sun Microsystems, Inc.</A>

    All Rights Reserved.</FONT></P>

   <br>



<FONT SIZE="-1">
Please send comments to:
<a href="mailto:java-awt@java.sun.com">java-awt@java.sun.com</a>
</FONT>

</TD>


<TD ALIGN=RIGHT>

   <IMG SRC="../../../images/sunlogo64x30.gif" ALT="Sun" BORDER=0 WIDTH=64 HEIGHT=30>

</TD>



</TR>

</TABLE>
  </body>
</html>


