このドキュメントは 3 つの節からなり、1.1 AWT の推奨されないメソッドを扱う支援をします。
興味のある方に: AWT は、 AWT ソースコードのドキュメンテーションコメントの@deprecatedタグを使用して、推奨されない API にマークを付けます。これらのタグは 1.1 のベータバージョンにはありませんでした。
1.1 コンパイラを使用して推奨されない API を呼び出すクラスをコンパイルするとき、次のような警告が表示されます:
推奨されない API をプログラムで呼びだしている場所のリストを表示するためには、% javac Test.java Note: Test.java uses a deprecated API. Recompile with "-deprecation" for details. 1 warning %
javac -deprecation を使用します。たくさんの警告が出るかもしれません。
混乱してはいけません!
プログラムが長く実行されるにしても、それを変換しようと思うかもしれません。その場合、可能な限り、新たにコードを書くときは新しいAPIを使用するようにします。
AWT プログラムの変換方法と変換理由の詳細については、プ ログラムの 1.1 AWT API への変換方法を参照してください。
注: 1.1.1 の Java コンパイラは、プログラムが推奨されないメソッドを呼び出し、またはオーバーライドするとき必ず警告を出します (次の節で説明する 1 つの例外を除きます)。他方 、1.1 コンパイラは、プログラムが推奨されないメソッドを呼び出しするときだけ警告を出し、オーバーライドするときは警告を出しませんでした。例えば、プログラムがactionメソッドをオーバーライドする場合、actionの実装のほとんどがスーパークラスの実装を呼び出さないため、1.1 コンパイラは通常警告を出しませんでした。
この場合、両方のメソッドをオーバーライドする必要があります。推奨されないメソッドをオーバーライドして置換メソッドを呼び出すようにし、また置換メソッドをオーバーライドして適切な機能を提供するようにします。推奨されないメソッドを実装するときに、@deprecated ドキュメンテーションタグを使用し、後方互換を提供するために意図的にメソッドをオーバーライドしているということを示します。例えば:
/** @deprecated */
public Dimension preferredSize() {
return getPreferredSize();
}
public Dimension getPreferredSize() {
...//implementation goes here
}
この状況ではループホールが活用できます:
コンパイラは、推奨されないメソッドをオーバーライドし、かつオーバーライドするメソッドを推奨されないメソッドとしてマークしたとき、警告を出しません。例えば、前にあるコードはコンパイルしても警告が出ません。しかし、前のコードを呼び出すコードをコンパイルする場合、推奨されないという警告が出ます。
この節で説明するソリューションによって、後方互換のコードを書くことが容易になり、コンパイルが明瞭になり、理解し易くなります。1.0 互換を提供する必要がなくなったときには、推奨されないコードを簡単に見つけて削除できます。
updateAWT という名前のスクリプトが最も簡単な置換をしてくれます。このスクリプトの操作と例については、プログラムの 1.1 AWT API への変換方法を参照してください。
この節の表と同様のものが 単純な名前変更にあります。その表の情報量はこの表より少なくはありますが、1.1 列で英字化されスクリプトが行った不正な変更を簡単に取消す支援をします。
次の表で、太字フォントのメソッド名は優先するメソッド名です。イベント処理
メソッドの有効な 1.1 の代替の一部は、他の 1.1 ソリューションに比べて優先度が低くなります。例えば、gotFocus は processFocusEventで置換できますが、
FocusListener に実装されている focusGained で置換することを薦めます。このことは
イベント処理コードの変換方法で説明しています。
| 推奨されないメソッド | 推奨されないメソッドのあるクラス | 1.1 の置換 |
|---|---|---|
action
| Component
| アクションイベントの処理例については、イベント処理コードの変換方法を参照 |
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
| Component 内の getCursor メソッド
|
getLineIncrement
| Scrollbar
| getUnitIncrement
|
getPageIncrement
| Scrollbar
| getBlockIncrement
|
getPeer
| Component
| 置換なし |
getVisible
| Scrollbar
| getVisibleAmount
|
gotFocus
| Component
| processFocusEvent
イベント処理を優先する方法については、イベント処理コードの変換方法を参照 |
handleEvent
| Component
| processEvent
イベント処理を優先する方法については、イベント処理コードの変換方法を参照 |
hide
| Component
| setVisible(false)
|
insertText
| TextArea
| insert
|
insets
| Container
| getInsets
|
inside
| Component, Polygon, Rectangle
| contains
|
isSelected
| List
| isIndexSelected
|
keyDown
| Component
| processKeyEvent
イベント処理コードの変換方法を参照 |
keyUp
| Component
| processKeyEvent
イベント処理コードの変換方法を参照 |
layout
| Component, Container, ScrollPane
| doLayout
|
locate
| Component, Container
| getComponentAt
|
location
| Component
| getLocation
|
lostFocus
| Component
| processFocusEvent
イベント処理コードの変換方法を参照 |
minimumSize
| Component, Container, TextArea, TextField
| getMinimumSize
|
mouseDown
| Component
| processMouseEvent
イベント処理コードの変換方法を参照 |
mouseDrag
| Component
| processMouseMotionEvent
イベント処理コードの変換方法を参照 |
mouseEnter
| Component
| processMouseEvent
イベント処理コードの変換方法を参照 |
mouseExit
| Component
| processMouseEvent
イベント処理コードの変換方法を参照 |
mouseMove
| Component
| processMouseMotionEvent
イベント処理コードの変換方法を参照 |
mouseUp
| Component
| processMouseEvent
イベント処理コードの変換方法を参照 |
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
| Component 内の setCursor メソッド
|
setEchoCharacter
| TextField
| setEchoChar
|
setLineIncrement
| Scrollbar
| setUnitIncrement
|
setMultipleSelections
| List
| setMultipleMode
|
setPageIncrement
| Scrollbar
| setBlockIncrement
|
show()
| Component
| setVisible(true)
|
show(expression)
| Component
| setVisible(expression)
|
size
| Component
| getSize
|