This document consists of three sections to help you deal with deprecated methods in the 1.1 AWT.
For the curious: The AWT marks deprecated API using the@deprecated
tag in documentation comments in the AWT source code. These tags were not present in the beta 1.1 releases.
When you use the 1.1 compiler to compile a class that calls deprecated API, you'll see a warning like the following:
% javac Test.java
Note: Test.java uses a deprecated API. Recompile with "-deprecation"
for details.
1 warning
%
To see a list of everywhere your program uses deprecated API,
use javac -deprecation
.
You might see many warnings.
Don't panic!
Your program will continue to work for a long time.
However, you might want to make plans to convert it.
And any new code you write
should use the new API,
if at all possible.
For complete information on how and why to convert your AWT programs, see How to Convert Programs to the 1.1 AWT API.
Note: As of 1.1.1, the Java compiler warns you whenever a program calls or overrides a deprecated method (with one exception described in the following section). The 1.1 compiler, on the other hand, only warned when deprecated methods were called -- not when they were overridden. For example, the 1.1 compiler wouldn't usually warn you if a program overrode theaction
method, since most implementations ofaction
don't call the superclass's implementation.
The solution is to override both methods.
Override the deprecated method so that
it calls the replacement method,
and override the replacement method
to provide the appropriate functionality.
In your implementation of the deprecated method,
use the @deprecated
documentation tag
to indicate that you are intentionally overriding the method
to provide backwards compatibility.
For example:
/** @deprecated */
public Dimension preferredSize() {
return getPreferredSize();
}
public Dimension getPreferredSize() {
...//implementation goes here
}
This solution takes advantage of a loophole:
The compiler doesn't warn you when you override
a deprecated method
and
you mark the overriding method as deprecated.
For example, the preceding code results in no warnings when compiled.
However, if code that calls the preceding code
is compiled,
a deprecation warning occurs.
The solution described in this section helps you write code that is backwards compatible, compiles cleanly, and is easy to understand. When you no longer have to provide 1.0 compatibility, it'll be easy to find and remove the deprecated code.
updateAWT
can
make the simplest replacements for you.
See How to Convert
Programs to the 1.1 AWT API
for instructions and examples of using the script.
A table similar to this one is in Simple Name Changes. That table contains a bit less information than this one, and it's alphabetized by the 1.1 column to help you easily undo incorrect changes that the script has made.
In the following table,
method names in bold font
are the preferred method names.
Some of the valid 1.1 substitutes for event-handling methods
are less preferable
than other 1.1 solutions.
For example,
although gotFocus
can be replaced by processFocusEvent
,
we'd rather you replaced it with
focusGained
implemented in a FocusListener
,
as described in
How to Convert Event-Handling Code.
Deprecated Method | Class Where Deprecated | 1.1 Replacement |
---|---|---|
action
| Component
| See How to Convert Event-Handling Code for examples of handling action events. |
allowsMultipleSelections
| List
| isMultipleMode
|
appendText
| TextArea
| append
|
bounds
| Component
| getBounds
|
clear
| List
| removeAll
|
countComponents
| Container
| getComponentCount
|
countItems
| Choice, List, Menu
| getItemCount
|
countMenus
| MenuBar
| getMenuCount
|
deliverEvent
| Component, Container
| dispatchEvent
|
disable()
| MenuItem
| setEnabled(false)
|
enable()
| Component, MenuItem
| setEnabled(true)
|
enable(expression)
| Component
| setEnabled(expression)
|
getBoundingBox
| Polygon
| getBounds
|
getClipRect
| Graphics
| getClipBounds
|
getCurrent
| CheckboxGroup
| getSelectedCheckbox
|
getCursorType
| Frame
| getCursor method in Component
|
getLineIncrement
| Scrollbar
| getUnitIncrement
|
getPageIncrement
| Scrollbar
| getBlockIncrement
|
getPeer
| Component
| No replacement. |
getVisible
| Scrollbar
| getVisibleAmount
|
gotFocus
| Component
| processFocusEvent
See How to Convert Event-Handling Code for information on preferred ways to handle events. |
handleEvent
| Component
| processEvent
See How to Convert Event-Handling Code for information on preferred ways to handle events. |
hide
| Component
| setVisible(false)
|
insertText
| TextArea
| insert
|
insets
| Container
| getInsets
|
inside
| Component, Polygon, Rectangle
| contains
|
isSelected
| List
| isIndexSelected
|
keyDown
| Component
| processKeyEvent
See How to Convert Event-Handling Code. |
keyUp
| Component
| processKeyEvent
See How to Convert Event-Handling Code. |
layout
| Component, Container, ScrollPane
| doLayout
|
locate
| Component, Container
| getComponentAt
|
location
| Component
| getLocation
|
lostFocus
| Component
| processFocusEvent
See How to Convert Event-Handling Code. |
minimumSize
| Component, Container, TextArea, TextField
| getMinimumSize
|
mouseDown
| Component
| processMouseEvent
See How to Convert Event-Handling Code. |
mouseDrag
| Component
| processMouseMotionEvent
See How to Convert Event-Handling Code. |
mouseEnter
| Component
| processMouseEvent
See How to Convert Event-Handling Code. |
mouseExit
| Component
| processMouseEvent
See How to Convert Event-Handling Code. |
mouseMove
| Component
| processMouseMotionEvent
See How to Convert Event-Handling Code. |
mouseUp
| Component
| processMouseEvent
See How to Convert Event-Handling Code. |
move
| Component, Rectangle
| setLocation
|
nextFocus
| Component, Container, Window
| transferFocus
|
postEvent
| Component, Window
| dispatchEvent
|
preferredSize
| Component, Container, TextArea, TextField
| getPreferredSize
|
replaceText
| TextArea
| replaceRange
|
reshape
| Component, Rectangle
| setBounds
|
resize
| Component, Rectangle
| setSize
|
setCurrent
| CheckboxGroup
| setSelectedCheckbox
|
setCursor
| Frame
| setCursor method in Component
|
setEchoCharacter
| TextField
| setEchoChar
|
setLineIncrement
| Scrollbar
| setUnitIncrement
|
setMultipleSelections
| List
| setMultipleMode
|
setPageIncrement
| Scrollbar
| setBlockIncrement
|
show()
| Component
| setVisible(true)
|
show(expression)
| Component
| setVisible(expression)
|
size
| Component
| getSize
|