CHANGES SINCE THE PREVIOUS RELEASE
This file summarizes changes made since Swing 1.1. Documentation
improvements and look-and-feel cosmetic changes are not listed here.
For the latest, detailed information about Swing, be sure to check our
Web site, The Swing Connection:
http://java.sun.com/products/jfc/tsc/
This file has three sections:
- HTML Text in Components
- Bug Fixes for Swing 1.1.1
- Bug Fixes for Swing 1.1.1 Beta 2
- Bug Fixes for Swing 1.1.1 Beta 1
=======================
HTML Text in Components
=======================
Although this release is largely a bug fix update, it adds one
new feature of note: many components can now contain HTML text.
These components include instances of JButton and JLabel (whose
HTML support was added in Swing 1.1.1 Beta 1), JMenuItem, JMenu,
JCheckBoxMenuItem, JRadioButtonMenuItem, JTabbedPane, and
JToolTip (whose HTML support was added in Swing 1.1.1 Beta 2) --
but not yet JCheckBox or JRadioButton.
If the text property of an HTML-supporting component is a string that
begins with "", the rest of the string is used to create a
lightweight HTML docuemnt and the text is rendered by the full
Swing styled-text engine. For example, the following code creates
a JLabel that displays multiple lines of text in different fonts
and colors:
String htmlText =
"A JLabel with various text styles
" +
"And a new line!";
JLabel myLabel = new JLabel(htmlText);
Look for more information about this feature in The Java Tutorial, in
how-to pages such as the label page:
http://java.sun.com/docs/books/tutorial/uiswing/components/label.html
================================
Bug Fixes for Swing 1.1.1
================================
Only a few bugs were fixed after swing-1.1.1beta2. You can find more
information about each bug by searching for it on
http://developer.java.sun.com/.
4213722 Under 1.2 JViewport could attempt to paint complete
view, not just visible part.
4205481 public static final JTree.TREE_MODEL_PROPERTY and
INVOKES_STOP_CELL_EDITING_PROPERTY have been changed
back to what they were in 1.2, reg test covered by JCK.
4213376 JComboBox is no longer serializable
4199211 JToolBar throws ArrayOutOfBoundsException
4217707 NPE in JFileChooser's set filter method
4215003 The Image created by ImageView was still holding a
reference to the ImageView, resulting in large portions of
the text document/views not being able to be gc'ed.
4213896 inserting tab with existing component fails to add tab properly
4186905 JTextPane no longer dispatches keyTyped events to a KeyListener.
4228122 JScrollPane hides component below, does not scroll
Removed errant fix for bug 4178036, 'JScrollPane within
GridBagLayout does not work'.
4199115 Compatibility flaw in text.JTextComponent.FOCUS_ACCELERATOR_KEY in jdk1.2.2
4235020 mistaken @deprecated javadoc for getComponentAtIndex() and createTableCell()
Removed the @deprecated javadoc comments in the following classes:
javax.swing.JMenuBar.getComponentAtIndex(int)
javax.swing.JPopupMenu.getComponentAtIndex(int)
javax.swing.text.TableView.createTableCell(javax.swing.text.Element)
423565 JSplitPane cursor would get stuck to resize cursor.
4228045 JDK1.2.2.M WNT_NS4.5 and WNT_IE4.0 NullPointerException.Hashtable.UIDefaults.get
The private static UIManager.maybeInitialize() method is now re-entrant.
There's no regression test as this bug shows up in exisiting
functional tests.
================================
Bug Fixes for Swing 1.1.1 Beta 2
================================
Here's a list of the more than 100 bugs that were fixed for Swing
1.1.1 Beta 2. You can find more information about each bug by
searching for it on http://developer.java.sun.com/.
4128521 Many focus problems when editing JTextFields in JTable.
4199401 DefaultFocusManager interferes with comps that return true to
isManagingFocus().
4173008 Fail to serialize JTextField with highlighted text.
4191596 Keymaps in JTextComponent no longer work for key sequences with no
modifiers.
4197656 Multiple carets appear at the same time on JTextComponents.
4197660 Implementation of InputMethodRequests in JTextComponent is incomplete.
4101692 ScrollPaneLayout.removeLayoutComponent does not remove
LOWER_RIGHT_CORNER.
4167891 LabelView2D.createFragment will no longer throw a NPE if messaged
when the LabelView is not contained in a Container yet.
4180748 LabelView2D.viewToModel(float, float, shape, bias[]) would throw an
IllegalArgumentException under certain conditions.
4185836 ParagraphView, in certain situations, would not forward removeUpdate
to necessary views.
4207377 CompositeView.modelToView(int, bias, int, bias, shape) doesn't pass
modelToView to correct view for Backward bias.
4110232 It was possible for JComponent.paint to get in an infinite loop if
the offscreen image had a width/height of 0x0.
4207379 RepaintManager.getOffscreenBuffer now makes sure image size is at
least 1x1.
4207383 SwingGraphics could get confused about translation resulting in
drawing at the wrong place.
4198051 Signature of DefaultTreeCellEditors constructor was wrong.
4199666 JSplitPane would not layout correctly if the size was <= 0.
4200690 JViewport.scrollRectToVisible would not use backing store!
4203671 Painting in 1.2 inside plug-in was failing as the EventQueue was
static, resulting in all applets trying to use the same EventQueue,
which is not cool. EventQueue is now accessed via the AppContext,
resulting in a per applet EventQueue.
4129409 setTableHeader(null) causes exception.
4170757 Unintentional memory retention in AncestorNotifier. There was a
simple error in AncestorNotifier.removeListeners().
4179898 setSelectedFile should change the current directory.
4191647 JEditorPane text won't display after type switch from html to plain
and setText().
4203305 JEditorPane leak.
4198136 JEditorPane does not work correctly with wrong type of content.
4181905 doPriviledge()s missing from several getResource() calls in Swing
4181936 NullPointerExcetion in ParagraphView when running in a browser.
4202792 One touch expandable buttons in JSplitPane no longer participate in
focus traversable.
4201995 JSplitPane now sets itself to be opaque.
4403435 JTree was get confused about expanded state of root after model
changed root node.
4205591 JSplitPane did not work correctly in beanbox as JSplitPane did not
override isValidateRoot to return true.
4280549 BasicSplitPaneUI.BasicHorizontalLayoutManager and
VerticalLayoutManager were not returning correct size
for preferredLayoutSize.
4205424 The CSS parser in StyleSheet had problems with rules starting with a
'.'. Also had problems when the last declaration of a rule ended with
';', although not correct CSS there are enough style sheets that have
this to warrant us allowing it.
4199915 IconView was not throwing an exception, as documented, when
modelToView was invoked with an invalid argument.
4202014 HTMLWriter would throw NPE under certain conditions.
4202505 JEditorPane would not scroll to the correct reference when the
document was loaded synchronously.
4198822 BasicGraphicsUtils.drawEtchedBorder was off by one pixel.
4202498 ImageView was not thread safe, and could get confused about the size
of an image.
4195369 Numbers in lists (ordered/unordered) were being drawn with wrong font.
4209499 PropertiesMetalTheme init problem. Fixed a small bug in Metalworks
submitted on swing-feedback.
4200717 Scrolling AutoRepeater too slow. Changed the delay on the
autoscroller from 100 millis to 60 millis. This makes scrolling
appear faster. The 60 milli number is based of timings of some
"real" apps I did. For example, both xemacs on Solaris and Notepad
on NT seem to use a delay of about 60 milliseconds.
4185993 SwingSetApplet throws exceptions running with 2 applets. This fix
should ensure that MetalBump's Frame is re-inited in the event that
the browser pre-maturely disposes of it.
4209928 javax.swing.text.BoxView doesn't propagate allocation properly.
4128110 JScrollPane does not update after setViewportView.
JScrollPane.setViewport() and JViewport.setView() now call
revalidate() and repaint().
4197293 Vertical scroll bar in JScrollPane does not "page" correctly.
Changed the vertical orientation case in
JTable.getScrollableBlockIncrement() to return a value that was a
whole number of rows, rather than just the height of the viewport.
4178036 JScrollPane within GridBagLayout does not work.
The problem was the JViewport.getMinimumsize() returned
ViewportLayout.minimumLayoutSize() which was wired to new
Dimension(4, 4). Unlike most layout managers (save BoxLayout)
GridBagLayout uses a component's minimum size, this caused undersized
GridBagLayouts to shrink their JScrollpane children to a ridiculously
small value. GridBagLayout's saving grace has been that most
components define preferredSize to be equal to minimumSize, so this
problem usually doesn't show up.
I've changed JViewport.getMinimumSize() - it now returns its views
minimum size, or 4,4 if there is no view. The only effect this
SHOULD have is to fix bugs of this ilk however it will cause
BoxLayouts that contain JScrollPanes or JViewports to behave slightly
differently as JViewports will not be quite as "stretchy" as they
used to be.
4186336 JViewPort vs. JViewport. Fixed a few typos in the javadoc for
JScrollPane, JScrollBar, JViewport.
4193026 Memory leak default caret prevents text components from being gc'd.
4171461 Setting a selection on one JTextComponent removes the selection from
others.
4110482 Proper keyboard navigation must be verified for JTabbedPane.
4171209, 4171211, 4171213
Keyboard Accessibility in Swing 1.1 - JTextPane, JEditorPane,
and JTextArea
4198793 MultiTextUI not fully implemented.
4209656 HTMLWriter throws exception when writing.
4204990 MinimalHTMLWriter had problems writing color values.
4204455 Extending selection in JTextField could throw exception.
4207963 Property to disable looking up event queue was not being used.
4210250 PlainView did not always redraw the necessary text when repaint was
invoked.
4193062 It was possible for DefaultCaret to not message repaint on the
correct region of the text component, resulting in the caret not
blinking.
4201204 JTextComponent.DefaultKeymap.getKeyStrokesForAction was not
implemented.
4199371 FileChooser attempts to read all drives on startup.
4163841 JFileChooser AcceptAllFileFilter bugs.
4208935 runnit changes for SwingSet jar changes.
4191374 JMenuBar.getSubElements can return an array with null values.
4208018 dispose()'ing JFrame with a menubar causes InvocationTargetException.
4173633 JMenu.getItem returns this if containee is not a MenuElement.
4198809 MotifL&F - JMenuItem, if disabled and disabledIcon is null --> NPE.
4187004 Motif JPopupMenu Border should include title.
4207339 Add HTML label support for MenuItems.
4209065 Add HTML support in JTabbedPane tabs.
4207474 Add HTML label to tool tips.
4171437 Mnemonics behavior not what's expected.
4185024 Heavyweight combo boxes on JDesktop don't work correctly.
4188832 Medium weight submenus hidden by heavyweight Canvas.
4119993 JTable and JList overeager on drag listening for selection.
4207333 Inadvertent API regression in JRootPane.
4197019 Action in JPopupMenu and JMenu handled differently.
4195823 Calling remove(int) on JPopupMenu is bad.
4134043 HTMLEditorKit does not track mouse motion events.
4211052 ComponentOrientation changes to menu items.
4204128 RTFEditorKit (still?) writes debugging info on stdout/stderr.
4208935 Updated SwingSet jar build to include manifest file.
Also updated readme on how to run from jar file.
4203862 JLabel disabled text paints edges backwards.
4211425, 4211454 ClassCastExceptions in AbstractAction.
4210461 Now, every L&F has the ability to specify the delimiter used in a
MenuItem's accelerator by setting a value in its defaults table.
4211721 InternalFrame dragging is slow. We've now added an option for faster
dragging. It is activated through a client property. Added a
feature to Metalworks to demo how this works.
4211720 DesktopIcons are always behind internal frames. This was a small fix
in the DefaultDesktopManager so that desktop icons are in the same
layer as their counterpart frame. A regression test for this will be
putback later.
4189791 Buttons get stuck down in internal frames. This bug has caused a lot
of complaints. It has to do with the way "click through" was being
handled. I've modified how the listeners to the glasspane are
handled. This seems to have fixed things up. I actually seems to
make click through work better. You can see this problem by
repeatedly clicking the "make" button in the SwingSet.
4183291 AccessibleJTree.getAccessibleIndexInParent() is incorrect.
4169215 Accessibility hierarchy (parent/child) wrong in JTree nodes.
4186062 JSlider fires ChangeEvents when nothing has changed.
4199387 JComboBox - Should match preferred height of JTextField.
4201964 JComboBox's arrow button is drawn too wide in Windows Look & Feel.
4200901 JSlider.createStandardLabels(int increnment) hungs program, when
increment<=0.
4198838 WinLF tabs in JTabbedPane are too large .
4154572 TitledBorder filling background behind title text.
4212109 getDeepestComponentAt fails for JTabbedPane.
4212562 JInternalFrame stack overflow if content fg/bg==null.
4156316 JMenu.add(Component) throws NullPointerException.
4176063 Serializing components with tooltips throws exception.
4199352 JComponnent leaks Autoscrollers. Resetting the
JComponent.autoScrolls property leaks an Autoscroller object because
the Autoscroller is also a mouse listener for the component. The fix
is to add a package private dispose() method to the package private
Autoscroll class that stops its timer and removes the mouse
listener.
4201314 Documentation for setAutoscrolls in JComponent unclear.
4209474 Incompatible change in JComboBox.setSelectedItem (breaks plugin
control panel).
4212498 Regression: Tabbing out of editable combo boxes doesn't commit item
any more.
================================
Bug Fixes for Swing 1.1.1 Beta 1
================================
Here's a list of the more than 200 bugs that were fixed for
Swing 1.1.1 Beta 1, which was released on January 28th. You can
find more information about each bug by searching for it on
http://developer.java.sun.com/.
4170786 javax/accessibility/AccessibleResourceBundle not being built on
Solaris.
4171588 basic_ja.properties is now encoded in unicode.
4171983 JPasswordFields getPassword could return the wrong string.
4168561 Motif look and feel caret will now properly erase itself.
4163591 DefaultTreeCellRenderer's getDefaultXXXIcons where returning
the wrong thing.
4167396 Changing font of JTree will now force recalculating sizes.
4169679 DefaultTreeCellRenderer's paint didn't check for null color
(1.2 exception).
4172220 The JTree showing the Elements of the Document in Notepad/
Stylepad will now update when a new document is created, or
opened.
4172434 Client side maps now supported for images.
4174543 JTree no longer throws exception after being serialized.
Also implemented StyleSheet.getDeclaration, which previously
had no implementation.
4174954 JComponent will now revalidate when setVisible is invoked
with a different value. Also: Fixed bug in rectangleIsObscured
that could result in wrong value being returned. The result of
which could cause a previous version of the offscreen image to
show through.
4177411 JViewport was causing visual garbage with nested scrollpanes.
4177725, 4177715
JTree was using wrong property name when firing property change
events for setModel and setInvokesStopCellEditing.
4149666 DefaultEditorKit.read will now map \r to \n. This is needed for
Macs which represent end of line as \r.
4168298 Lists were not using the type attribute correctly, which
resulted in not drawing correct type.
4170605 An extra bullet for lists was displayed if a comment was
embedded in a list. Also: Improved CSS support. Fixed problem
that was causing make to fail on windows for swing-1.1 Added
support for style and link tags. Added support for writing out
map/area tags. Improved CSS support to be closer to the spec.
Moved conversion logic that was in StyleSheet to CSS. Fixed
bug where font size, when specified with font tag was wrong.
Implemented StyleSheet.MuxingAttributeNames.getAttributeNames.
Changed writing out of CSS style to include type=text/css.
Fixed bug where getAttributeSet when invoked on LabelFragment
could return wrong AttributeSet. Fixed bug that was causing
input attributes to contain the wrong value under certain
conditions. Fixed bug where MUNGE_FILES were not being
compiled under windows. Fixed bug that was causing deadlock.
Fixed bug that was causing exception when inserting HTML via
the InsertHTMLTextAction class at offset of 0.
4161044 Unable to see flashing caret in JTextField with windows
LAF. Highlight will not highlight where caret will be drawn if
selection is not empty.
4161030 JTextField, for windows, will only select all of its text when
gaining focus if that last time it lost focus
was not temporary. Previously it would always select all the
text when gaining focus.
4165339 JPasswordField.modelToView now considers horizontal alignment
so that selection functions correctly for centered or right
aligned password fields.
4158291 Text would scroll to wrong places in JTextField when deleting
and text did not completely fit in bounds.
4128483 Input attributes would not correctly update if document changed.
4180658 JViewport will now validate its component (acutally the parent
validateRoot) if scrollRectToVisible is invoked and the
viewport's view is not currently valid. Fixed bug that could
result in ElementSpec having wrong Direction when inserting
HTML into an existing document. Added HTML action for
inserting HR. Fixes bug in
VariableHeightLayoutCache.getVisibleChildCount that would
result in wrong value being returned.
4100143 There are no longer empty image directories for the swing
demos under windows.
4150996 Demos have the same directory structure (and the same files)
under windows and solaris now.
4185513 src.zip, for 1.1 builds, no longer has preprocessor
statements in it.
4185513 When StyledEditorKit is updating the input attributes it will
only get a character Element once (previously it might have
done it twice). Also: Fixed bug that was causing style
attributes to not work when using the style attribute on a
character level HTML tag. Changed major portions of HTMLWriter
to produce better HTML. Removed unused variable in method in
StyleSheet. Changed DefaultEditorKit to only update end of
line property if document was empty.
4154267 LabelView will paint background if background attribute is
defined. Also: Fixed bug in JTree that was causing editing to
stop when any property changed on the tree. Added support for
determining what end of line string is in HTML documents.
Added methods (package private) to HTMLDocument for inserting
arbitrary HTML. Fixed bug that could cause selection listeners
added to JTree to not be notified. Added
EmptyAttributeSet.equals, and tweaked SimpleAttributeSet.equals
to notice if asking equals(this).
4188924 NullPointerException when editing tree.
Also: Fixed bug where styles would not be output if document
did not contain head tag. Fixed bug where removeStyle was not
properly cleaning up styles that may have been in Style. Also
fixed bug that was causing imported/linked styles to be written
out with document. Tweaked javadoc in DefaultTreeCellRenderer.
Added support for specifying that JDialog/JInternalFrame/JFrame
should cause a System.exit when closed. The define for this (in
WindowConstants) is currently commented out, but can be used by
specifying the integer value directly. Also fixed bug that
could cause close operation specified in internal frame to have
no effect.
4188955 When typing text into a JTextArea that caused a newline to
be created due to wrapping, the JTextArea would not properly
repaint itself.
4186163 Unserializing a StyleContext could throw a NPE. Updated
javadoc in TreeSelectionModel/DefaultTreeSelectionModel to
reflect expected behavior.
4165393 Regarding incorrect ACTIVE state.
4170868 On-the-spot pre-editing causes exception in HTML document.
4170871 The position of the candidate list window is wrong. Change to
merge character attributes in the Styled document (HTMLDocument
and DefaultStyledDocument) with composed text element for more
wysiwyg on-the-spot editing.
4166242 HTML updates should update bidi structure.
4164887 JDK1.2FCS-E: HTMLDocument api doc was not created properly.
4172050 In solaris, highlight string make caret invisible in JTextComponent.
4170915 PlainDocument should use superclasses createLeafElement method
instead of calling new directly so subclasses can change
Element type. Some work toward 4171509, HTMLEditorKit support
of conversion of StyleConstants attributes to/from CSS
attributes.
4174856 Custom caret is not redrawn in JTextPane. This actually is part
of finishing 4172050. Fix regression in html support that
resulted in null pointer exceptions being thrown. Fixed a
problem in the html package that caused the following exception
whenever a paragraph with nothing but a newline was
encountered. javax.swing.text.StateInvariantError: infinite
loop in formatting The above exception is generated when a
paragraph is asked to format to a zero or negative size (which
can never be satisfied). The html package was erroneously
causing such a situation. The fix does not fix the problem
reported by QA on the Netscape browser, which also produces
this message. That problem is still being investigated.
4168158 Constructor GapContent(int i) throws NPE when i = 1.
4174891 JEditorPane ignores new lines in
tag.
4166962 JEditorPane can't display non-Latin1 character in region
Substantial progress toward 4171509 (HTMLEditorKit should
support StyleConstants). This is now handled properly in the
in-memory model, however more work is yet required to make file
I/O also cause attributes that have a StyleConstants mapping to
be stored in the model as CSS attributes or saved as html
tag/attribute or html style attribute. The fix for 4171509
involved a fair amount of work, and therefore likely has some
bugs associated with it that can be filed seperately. I
included a hacked version to Stylepad in the evaluation which
uses the html support to provide the stylepad functionality,
and uses html as the I/O format. It functions as a very simple
html editor. Added suggested change from swing-feedback to
DefaultCaret to not blink while users are actively changing the
text.
4176571 WordApplet in Netscape on Windows NT throws
javax.swing.text.StateInvariantError.
4158124 Should JTextComponent.copy use getToolkit (vs.
Toolkit.getDefaultToolkit())?
4170050 Unintentional memory retention in CompositeView.
4156303 CompositeView.loadChildren doesn't remove old child views.
4165774 com.sun.java.swing.text.html.HTML.Attribute.allAttributes[]
does not contain FACE.
4136083 HTMLWriter fails to write out alignment.
4178097 JTextPane throws IllegalArgumentException when PgUp.
4148697 Empty JTextArea - IllegalArgumentException thrown - releasing
'page down' key.
4168917 Background color in HTML body does not fill page in small pages.
4147392 JEditorPane.setHighlighter(null) throws nullPointerException.
4131271 DefaultEditorKit.BeginLineAction/EndLineAction should set
MagicCaretPosition.
4131267 DefaultEditorKit needs a "selection-off" capability (for the
ESCAPE key).
4138304 JTextField dosen't update focus border at Motif L&F. Updated
the javadoc for some views, and started making the DocumentEvent
forwarding updating of the view hierarchy easier for composite
view implementations. Fixed BasicTextAreaUI so that it looks
for the correct property names (the wrap-related names were
changed).
4181804 DefaultCaret.equals() not implemented.
4180803 HTML viewer: and tags don't display Courier.
4179239 JEditorPane uses wrong editor kit for default.
4175754 Untidy syntax in BoxLayout.java.
4123386 swing.text.ComponentView.modelToView(int, Shape) doesn't throw
BadLocationExcept.
4155127 setFont() has no visual effect on JTextField; repaint() has to
be invoked.
4164239 BoxLayout sizes Components wrong if minimumSize is larger than
preferredSize.
4166782 Swing1.1 PERF: BasicTextUI erases background twice.
4176211 Undo/redo for the input method composed text is incorrect in
JTextComponent.
4108577 Disabled text fields allow selection.
4134280 No specification of document notification protocol.
4171509 HTMLEditorKit should support StyleConstants. This is a fixup
to the previous fix. It turns out that newly constructed
elements were using a copy of the AttributeSet they were given
rather than creating a set from the associated AttributeContext
like they were supposed to. This meant the converting sets
provided by the html StyleSheet weren't being installed into
the html elements. It also means that attribute compression
that was supposed to be taking place wasn't!!!
4178193 Baseline is different between composed text and backing store
in LabelView. Also: Fixed HTML paragraph to render the css box
attributes. The insets were considering these attributes, but
they weren't being rendered. Fixed spurious
NullPointerExceptions being generated by BoxView after the
DocumentEvent handling rewrite. Some fixes to HTML table
editing. It now works (but doesn't necessarily repaint
properly) unless the table has multi-row or multi-column cells,
or a caption. More work is needed on this. Fixed minor
javadoc error in Document.
4173018 replaceSelection fails if JTextField is not editable.
4183255 Calling setText on styled text components swaps out the
document model. This was easy to fix by simply leaving the old
model and calling remove() for the entire model. However,
doing this exposed a bug in the model that left it corrupted if
the entire content was removed. Fixing that meant fixing
ElementBuffer.create() to do a better job.
4181934 AccessControlException generated in ImageView within browsers
Hardcoded refresh rate values that were trying to be fetched by
calling System.getProperty(). Fixed calculation of source URL
for the image. It should have been using the getBase() method
on the associated document for it's calculation of the source
URL.
4173008 Fail to serialize JTextField with highlighted text.
Also: Added support for displaying html in the ComponentUI
implementations. This is currently package private to the
basic package so that it adds no new api. It is enabled by
setting the text of the component to a string that starts with
. Initially, only BasicLabelUI and BasicButtonUI have
been converted to use it. We now have multi-line styled labels
(There must be an RFE laying around that can now be closed :-)
You can add HMTL strings to JLabel and JButton and interesting
things will happen. Fixed up BasicHTML support to load the
EditorKit implementation when first accessed, and changed to
not effect default StyleSheet Fixed View.preferenceChanged to
use the proper child View in the default implementation. This
is needed by the asynchronous layout view currently in
experimental status. Performance results are quite promising.
Layout for large views is computed incrementally and
asynchronously (able to adapt to size changes before the job is
done, etc). Substantially improved the View javadoc
specification. Changed BoxView to not throw away layout
information when the number of children changes. This makes it
possible to repaint while changing the view structure to
reflect a changed model. BoxView still needs more work to
actually guarantee it repaints everything needed.
Substantially reduced the number of Rectangles created when
computing child view allocations. CompositeView now holds a
rectangle it reuses when communicating with a child view.
CompositeView also avoids calling Shape.getBounds() (which
allocates a new Rectangle) if the Shape can be narrowed to a
Rectangle to extract it's bounds. Fixed concurrency holes that
appeared in BasicTextUI apparently with the addition of the
i18n position bias. Improved the javadoc to reduce the chance
of this happening again, and to warn developers that use the
getRootView method that they must arrange for their own
concurrency protection.
4191780 Programmatic selection in JTextPane causes NPE in
BoxView.childAllocation().
4193508 javax.swing.text.CompositeView not threadsafe.
4166778 Typo in inner class JEditorPaneAccesssibleHypertextSupport.
4172586 AccessibleJTableHeader.getAccessibleStateSet works.
4172235 Basic class depends on Windows class.
4172751 IntrospectionException trying to load swingall.jar.
4161565 Maximized Internal Frames don't resize.
4176733 REGRESSION: JDesktopPane setVisible/setSize need before adding
JInternalFrame.
4177469 JPopupMenu wrong bound property fix.
4115273 Double click close to check isClosable() on internalFrame.
4228140 Minimize menu to work when isMaximizable isn't checked.
4165234 Serialization error: made desktopManager transient.
4172083 Need to disable rootpane check for JInternalFrame in
EnableSerializationFocusListener.
4118140, 4115273
Minimize on control menu not working. Double click closes a
nonclosable motif internal frame. Fix for CloseAction NPE when
there are no JInternal. JFrame doesn't check for null
desktopPane.
4172083 Need to disable rootpane check in EnableSerializationFocus for
JInternalFrame's JDesktopPane.
4165234 Made desktopManager transient.
4127970 JPopupMenu.setDefaultLightWeightPopupEnabled(false) doesn't work.
4160735 AncestorNotifier.propertyChange() throws NullPointerException.
4167902 AbstractAction.putValue(...) implementation is incorrect.
4169490 JMenu's method remove(JMenuItem mi) throws NPE.
4171254 JMenu.setEnabled doesn't work.
4168483 Medium weight menu popup problem (workaround).
4146684 Closing a window by a lightweight menu causes error.
4113572 Mixed components in JToolBar don't align well.
4176981 Menus are too wide.
4177696 setSelectionModel() of JMenuBar: Property change listener
doesn't get notified.
4177688 setMargin() of JMenuBar: Property change listener doesn't get
notified.
4177452 setAccelerator doesn't fire property change event.
4177424 Exception in JMenu.setModel.
4174983 JMenu doesn't show Icon on inserting subclass of AbstractAction
(last time...).
4089005 Swing add/remove Listeners do not accept null.
4110669 Named property changes don't work with JComponents. Fix to
comment.
4178391 NPE in RemoveAction. KeyEvent.VK_KP_* -> SwingUtilities.VK_KP_*
4169490 JMenu's method remove(JMenuItem mi) throws NPE.
Fixes to listener registry for Action GC.
4183227 PERFORMANCE: AbstractActions.
4183360 PERFORMANCE: JMenuBar creates too many Component[] objects.
4186484 ClassCastException in AbstractAction.
4186500 Localize VK_KP knowledge to KeyStroke.
4179541 JMenu installs its UIs twice!
4186626 JCheckBoxMenuItem installs its UI twice.
4186627 JRadioButtonMenuItem installs its UI twice.
4146598 JMenu delay property misleading.
4186925 Make AbstractAction.ArrayTable serializable.
4186809 borderPainted of JMenuBar is incorrectly marked as bound.
4187573 NPE in BasicDesktopPaneUI.
4189288 JInternalFrame Title panes turn black.
4190357 Popup sub-menus aren't dismissed.
4190759 Disappearing Actions syndrome.
4188027 Regression: Swing MenuDragMouseEvents aren't working in 1.1.7
and 1.2 RC1.
4126109 Setting defaultButton to null causes NPE.
4158813 Workaround for AWT#4135218 ("..." in OptionPane).
4171856 setDefaultButton() broken under JDialog.
4178562 incorrectly activates button with focus.
4135809 setBorder doesn't work on ScrollPane's containing JTables.
4153446 JDialog.setLocationRelativeTo sometimes fails after setLocation
call.
4166149 JTabbedPane preferredSize incorrect with multiple tab runs.
4164301 JFrame with JXXX member cannot be deserialized.
4164084 Default button doesn't activate if combobox has focus.
4182204 TitleBorder.getBorderInsets(Component,Insets) broken if
border not instanceof AbstractBorder.
4169763 Fixed recursion in JFileChooser.
4181146 setCurrentDirectory not entered in ComboBox if root but
not in FileSystemView.getRoots().
4158821 ToolBars create unnecessary frames.
4166167 Floating JToolbar can be maximized.
4177032 Inconsistent bound property name, borderPainted.
4177320 Placement of JComboBox in JToolBar. Added defaults for
setAlignmentX and setAlignmentY to JComboBox. Also cleaned up
constructors in JComboBox.
4166246 Metal Button size in JToolBar was not restored after switch
back from Windows l&f. This turned out to be 2 bugs in 1:
MetalToolBarUI ignoring the insets on the button borders, and
ButtonUI setting the border on the buttons after the toolbar
sets them during a L&F switch (which caused additional problems
with rollover borders and L&F switching).
4183337 WindowsLookAndFeel painting of JSeparator edges is not correct.
Fixed painting for Windows and Motif separators and popup menu
separators. Also fixed bug where Windows and Motif separators
were not using background and foreground colors correctly.
4179006 DefaultListModel description references JListDataModel.
Fixed a javadoc typo.
4179162 Bound property, value on JScrollBar doesn't notify its property
listener.
4179141 Bound property, maximumSize[sic] on JScrollBar doesn't notify
its property listener. The maximum and value JScrollBar
properties were incorrectly marked as bound in their
@beaninfo.
4178533 JScrollPane SCROLLBAR_ALWAYS options do not work.
4178544 JScrollPane SCROLLBAR_NEVER options do not work correctly.
The fix installed some time ago to enable SCROLLBAR_AS_NEEDED
to do the right thing if Scrollable.getScrollableTracksViewportWidth()
and/or Scrollable.getScrollableTracksViewportWidth() was true
broke these simple cases.
4181977 DefaultBoundedRangeModel(..) constructor doesn't throw
IllegalArgumentException.
4183413 JComponent.setForeground,setBackground repaint needlessly.
Removed some dead clipping code from JViewport.setViewPosition().
The original code did force view positions to always be > 0 in
x,y which clearly wasn't all the code was intended to do (the
rest was dead). This wasn't ever a documented feature of
JViewport and JScrollPane and the scrollbars enforce
constraints like this properly when it matters. Fixed a JList
class javadoc error - the cell renderer example was
incomplete. Fixed JComponent.setForeground() typo and adjusted
the logic to account for another corner case.
4127960 AbstractListModel.fireContentsChanged ignores source arg.
4128942 Setting JList model to null causes JVM to hang. Throw an
IllegalArgumentException in this case. The setSelectionModel()
method already does this.
4097718 DefaultBoundedRangeModel.setRangeProperties(...) works
incorrectly. Use longs in one place to avoid overflow problems.
4179719 JSplitPane component may not show if its minimum size is 0.
4182564 Mouse clicks on the non-continuous JSplitPane divider make it
move.
4174850 ProgressMonitorInputStream error.
4132946 OK button on ProgressMonitor progress dialog.
4160137 Timer.setInitialDelay does not reset the timer.
4163364 JSplitPane does not check if components visible when
determining min/max location.
4184808 JSplitPane.setOrientation() needs beaninfo.
4177030, 4177026, 4177022, 4177283, 4179213, 4179185, 4179199,
4179180, 4179184, 4179197, 4179219
Fixes for unfired or misnamed bound PropertyChanged events.
4177884 Fixed PropertyChanged event firing.
4181204 Return number of errors on exit.
4157427 SwingUtilities.computeIntersection fixed to handle case where
rectangles don't intersect.
4157446 Modified isEventDispatchThread to use EventQueue.isDispatchThread
with 1.2 AWT.
4181976 Added logging and flash support to drawImage methods where it
wasn't implemented.
4168619 Fixed memory leak which prevented JComponents from being GC'd.
4182587 Removed redundant INTERNAL_FRAME_CLOSING event posting from
JInternalFrame.dispose().
4180820 Fixed SwingGraphics.setXORMode so it no longer scrambles
graphics translation values. Cleaned up SwingGraphics so its
naming follows JLS recommendations (no API change).
4148450 Overrode Container.findComponentAt in JRootPane so it ignores
glassPanes when searching. Previously an enabled glassPane
would cause any drag&drop processing to ignore child components
beneath the glass pane. Drag&drop fix is 1.2-specific.
4184807 Modified variable initialization so loading RepaintManager
doesn't cause java.awt.Toolkit to be initialized (needed for
automated testing).
4185824 Cleaned up uninstallUI so everything it installs is removed.
4184807 Used Class.getProtectionDomain as the 1.2 API test method,
instead of a Toolkit API to avoid loading the Toolkit
unnecessarily.
4187686 Eliminated synchronizing on class objects in favor of a per-
class private static Object. This is necessary because 1.1.X
has a "will not fix" bug where class object locking can
conflict with the classloader's locking, causing occasional
deadlocks. The 30 places we either synchronized using a class
object or entered a synchronized static method (which does the
same thing) were caught by Metamata Audit. APIChangesTest and
supporting files, pulled over from the JCK. This allows us to
verify we don't have any unknown API changes during our build.
4187686 Removed synchronized attribute from characterSets accessor
methods, both because 1.1.X VMs have problems with deadlocking
when class objects are synchronized, and because Hashtable is
already threadsafe.
4191140 Sped up listener notification a bit by caching loop test.
4188850 Fixed case where java.security.manager is defined when running
1.2, which caused a SecurityException accessing the EventQueue.
4189352 Set child's font and foreground color before calling its paint
method.
4193032 Sped up UIManager.getLAFState by caching the LAFState of the
current thread (most accesses are via either main in the
beginning or the EventDispatchThread after the main frame
shows). This was suggested by an IBM engineer -- it doesn't
speed up SwingMarks much because that test doesn't create that
many different JComponents, but apps like SwingSet will see a
bigger improvement.
4129394 JTable doesn't repaint correctly when removing rows from data model.
4127939 JTable.tableRowsDeleted() is incorrect. (Make sure that lines
are clipped correctly in the edge cases.)
4128135 Deleting last row doesn't change selection.
4128385 JTable: getselectedRow() and getSelectedColumn().
4181151 JTable: JTable:selectRow call clearSelection(); getSelectedRow
still returns index. Also fixed some javadoc in TableColumn
explaining the effect of having a null editor. Also fixed
javadoc in ListSelectionModel explaining that
removeselectionInterval also causes changes to
anchorSelectionIndex.
4106574 Proper keyboad naviagtion must be verified on Jtable for Windows L&F.
Nearly all commands are now supported. (This is an extra 17 bindings).
4185144 Win L&F uses wrong ResourceBundle.
4179116 getSystemLookAndFeel doesn't work on Mac.
4178458 Javax_swing classes do not respond to both sets of arrow keys.
Adds bindings for numeric keypad arrow keys, fixing this bug
and probably others.
4189562 All L&Fs are allowed to have an initialize() and uninitialize()
method. initialize() should get called before anything else
happens when a L&F is being instantiated. uninitialize()
should get called called as the last operation when a L&F is
being unloaded. Auxiliary L&Fs now have these two methods
called at the appropriate times.
4135833 Popup height wrong if first item is null or empty string.
4139900 Empty combo boxes have incorrect size.
4157329 Editable combo box not informed of font change.
4166593 Combo boxes don't fire action events properly.
4167394 Font size changes don't update combo boxes.
4167850 The RemoveAllItems() bug.
4171464 ComboBox shouldn't be throwing InternalErrors.
4171819 Windows combo boxes don't have the right border.
4174876 Tool tips don't work with combo boxes.
4180054 DefaultComboBoxModel fires too many contentsChanged events.
4201917 Shift-click in table with no selection causes exception.
4170418 Single click does not work in check boxes (Boolean table
columns) in JTable.
4144067 JTable handling of phantom mouse events faulty when dialogs
present.
4115930 JCheckBox in JTable: checkbox doesn't alaways respond to the
first mouse click.
4202966 Wrong coordinates in events retargetted to subcomponents of
JInternalFrame.
4202954 Deals with ArrowButton's response to mouse button events
that are not generated by the left mouse button.
4174867 JEditorPane ignores pixel value of width attribute in
tag. The pixel specification is now handled (tranlated to
css). The percentage values are still ignored, but that is a
separate bugid.
4181842 HTML viewer: width attribute not supported in tag.
Actually the css width and height were being ignored for all
block level elements. It is now used to adjust the views
requirements if specified. Fixed ImageView to not assume it is
being hosted by a JTextComponent so that it works properly in
JLabel and JButton.
4139102 Timer will not barf on a null ActionListener in the constuctor now.
4140983 Metal split pane divider was not completely redrawing its background.
4165874 JSplitPane will now work if a MouseListener has been added to
the divider.
4197328 JSplitPane would throw exception on serializing in 1.2.
4194021 Serializing JSplitPane could cause NPE to be thrown.
4139349 Clarified documentation for HTMLEditor.read() and fixed
implementation to insert new HTML into body (as one
would expect).
4199472 There is now a way to specify the root node has changed (there
was previously no way to do this) with TreeModelListener.
4203287 BasicTreeUI was not removing a listener it installed in
uninstallUI.
4199523 It was possible for FixedHeightLayoutCache to throw an NPE when
collapsing a node and the selection model was null.
4202896, 4202899
VariableHeightLayoutCache had some rather lame try/catch blocks
in it. Workaround for bug 4155532, BasicSplitPaneUI now
validates immediately after a resize.
4184412 HTML TableView doesn't support editing. The table view has
been fixed to support editing when it contains cells that span
multiple rows and/or columns. Because it now supports editing,
the reader has also been updated to broadcast partial table
results so that display can be asynchronous. To enable usage
of views that layout asynchronously (such as the upcoming
AsyncBoxView example) the restriction of using a special view
for table cells has been removed. There is also better support
for child views that are not table rows (such as captions,
column groups, etc). Also: Substantial improvements to the
handling of HTML tables. HTML tables now load asynchronously,
although it requires a custom EditorKit implementation that
extends HTMLEditorKit.
4170603 JEditorPane displays table elements with "rowspan"
incorrectly. The table now uses bit fields to mark areas
occupied by multi-column, multi-row, and erroneous table
cells. The ProxyCell is no longer used. This gives better
control over marking the table cell overflow into other grid
points of the table.
4174849 JEditorPane ignores caption HTML tag while document model has
correct element. There is better support for child views that
are not table rows (such as captions, column groups, etc).
Captions are displayed using ParagraphView.
4174873 JEditorPane ignores CELLPADDING attribute in tag. The
HTML CELLPADDING attribute is now converted to the CSS padding
attributes on TD and TH element views.
4202664 Complex HTML pages with nested tables layout too wide.
Distribution of space for multi-column and multi-row cells has
been substantially improved. There was also an error in the
old calculations.
4179938 PERFORMANCE: JDesktopPane's "outline" drag mode doesn't include
resizing.
4187974 PERFORMANCE: Fly-weight UI classes talk to defaults table too
often.
4188895 JTableHeader font not correctly set.
4197752 Bulletproof references to popupMenu.
4200837 The fake end element in an HTMLDocument is now of the right
structure.
4200839 Inserting pre, in certain cases, was creating an unnecessary
newline.
4200841 Selection wasn't adjusting correctly when using html insert
actions.
4200843 ListView/TableView/BlockView weren't obtaining its for a change
event.
4200845 Actions to style text provided by StyledEditorKit could change
too many attributes.
4200846 Inserting a new structure (using ElementBuffer) at offset 0
could cause some elements of length 0 to remain after removal.
4200847 Under certain circumstances JTree would ask the renderer for
the size of a node that was being removed during the remove
notification.
4191601 Overrode Container.remove() to pass the remove invocation on to
the content pane. This avoids a common cause of object leakage
in client apps.
4197719 Avoid NPE caused by AWT bug.
4195235 javax.swing.text.ComponentView not thread-safe. The methods
getMinimumSize(), getPreferredSize(), getMaximumSize(),
getAlignmentX(), getAlignmentY() access the component tree lock
and are therefore deadlock opportunities. These values are now
cached by the wrapping component that detects invalidation.
4195232 javax.swing.text.html.ImageView not thread-safe.
4169406 HTMLEditorKit.write would not honor offsets passed in when
writing text.
4189236 DefaultCaret would cause NullPointException after serialization.
4190537 Disabled trees would not show the expand/collapse icons.
4191142 Paint could throw NullPointException as getClipBounds returns
null under certain circumstances in 1.2. Fixes bug where
expand controls in tree would be painted for root, or roots
children even if not explicitly set to. Fixed bug where length
of DocumentEvent for style changes on paragraph was wrong.
Fixed bug where insertint into DefaultStyledDocument would
create unnecessary Elements under certain conditions.
Inserting into DefaultStyledDocument will know allow inserted
text to join with fake end Element. Fixed bug that was causing
bias, in DefaultCaret, to be set incorrectly when deleting
text. Removed a couple of unused variables in methods in
DefaultCaret. Fixed bug that could cause NullPointerException
to be thrown if TabStop.equals(null) was invoked.
|