Subject : Java 1.1 AWT deprecated methods
Solution Description:
=====================
. ¾Æ·¡ÀÇ ¿¹Á¦´Â jdk1.0.2¿¡¼ ÀÛ¼ºÇÑ ¼Ò½ºÄÚµåÀÌ´Ù.
www% vi DialogWindow.java
import java.awt.*;
public class DialogWindow extends Frame {
private boolean inAnApplet = true;
private SimpleDialog dialog;
private TextArea textArea;
public DialogWindow() {
textArea = new TextArea(5, 40);
textArea.setEditable(false);
add("Center", textArea);
Button button = new Button("Click to bring up dialog");
Panel panel = new Panel();
panel.add(button);
add("South", panel);
}
public boolean handleEvent(Event event) {
if (event.id == Event.WINDOW_DESTROY) {
if (inAnApplet) {
dispose();
} else {
System.exit(0);
}
}
return super.handleEvent(event);
}
public boolean action(Event event, Object arg) {
if (dialog == null) {
dialog = new SimpleDialog(this, "A Simple Dialog");
}
dialog.show();
return true;
}
public void setText(String text) {
textArea.appendText(text + "\n");
}
public static void main(String args[]) {
DialogWindow window = new DialogWindow();
window.inAnApplet = false;
window.setTitle("DialogWindow Application");
window.pack();
window.show();
}
}
class SimpleDialog extends Dialog {
TextField field;
DialogWindow parent;
Button setButton;
SimpleDialog(Frame dw, String title) {
super(dw, title, false);
parent = (DialogWindow)dw;
//Create middle section.
Panel p1 = new Panel();
Label label = new Label("Enter random text here:");
p1.add(label);
field = new TextField(40);
p1.add(field);
add("Center", p1);
//Create bottom row.
Panel p2 = new Panel();
p2.setLayout(new FlowLayout(FlowLayout.RIGHT));
Button b = new Button("Cancel");
setButton = new Button("Set");
p2.add(b);
p2.add(setButton);
add("South", p2);
//Initialize this dialog to its preferred size.
pack();
}
public boolean action(Event event, Object arg) {
if ( (event.target == setButton)
| (event.target == field)) {
parent.setText(field.getText());
}
field.selectAll();
hide();
return true;
}
}
. À§ÀÇ Äڵ带 jdk1.1.x ȯ°æ¿¡¼ ÄÄÆÄÀÏÇÏ¸é ¾Æ·¡¿Í °°Àº message°¡ print°¡
µÇ´Â °ÍÀ» º¼¼ö ÀÖ´Ù.
ÀÚ¹Ù´Â jdk1.1.x·Î upgradeµÇ¸é¼ º¯È°¡ ÀÖ¾ú´Ù.
ƯÈ÷ Window Programming °ü·ÃÇÏ¿© ¸¹Àº º¯È°¡ ÀÖ¾ú´Ù.
¾Æ·¡ÀÇ message´Â jdk1.1Àº ´õÁÁÀº method°¡ ÀÖÀ¸´Ï ¹Ù²Ù¾î¼ jdk1.1·Î ÃÖÀûÈ
½Ãų¼ö ÀÖ´Ù´Â ÀǹÌÀÌ´Ù. ¹°·Ð conversionÀ» ÇÏÁö ¾Ê¾Æµµ ½ÇÇàÇϴµ¥´Â
¹®Á¦°¡ ¾ø´Ù. Áï 1.1Àº 1.0.2¸¦ ¼ö¿ëÇÑ´Ù´Â ÀǹÌÀÌ´Ù.
www% javac DialogWindow.java
Note: DialogWindow.java uses a deprecated API. Recompile with "-deprecation" for details.
1 warning
. »ó¼¼ÇÑ Á¤º¸¸¦ º¸·Á¸é ´ÙÀ½°ú °°Àº optionÀ» ÁÙ¼öµµ ÀÖ´Ù.
www% javac -deprecation DialogWindow.java
DialogWindow.java:18: Note: The method boolean handleEvent(java.awt.Event) in class java.awt.Component has been deprecated, and class DialogWindow (which is not deprecated) overrides it.
public boolean handleEvent(Event event) {
^
DialogWindow.java:26: Note: The method boolean handleEvent(java.awt.Event) in class java.awt.Component has been deprecated.
return super.handleEvent(event);
^
DialogWindow.java:29: Note: The method boolean action(java.awt.Event, java.lang.Object) in class java.awt.Component has been deprecated, and class DialogWindow (which is not deprecated) overrides it.
public boolean action(Event event, Object arg) {
^
DialogWindow.java:38: Note: The method void appendText(java.lang.String) in class java.awt.TextArea has been deprecated.
textArea.appendText(text + "\n");
^
DialogWindow.java:81: Note: The method boolean action(java.awt.Event, java.lang.Object) in class java.awt.Component has been deprecated, and class SimpleDialog (which is not deprecated) overrides it.
public boolean action(Event event, Object arg) {
^
DialogWindow.java:87: Note: The method void hide() in class java.awt.Component has been deprecated.
hide();
^
Note: DialogWindow.java uses a deprecated API. Please consult the documentation for a better alternative.
7 warnings
www%
. ´ÙÀ½Àº À§ÀÇ Äڵ带 1.1¿¡ ¸Â²²²û conversionÇÏ´Â °úÁ¤ÀÌ´Ù.
¸ÕÀú ¾Æ·¡ÀÇ Å×À̺íÀ» »ìÆìº¸ÀÚ.
AWT 1.1 Deprecated Method Table
--------------------------------------------------------------------------------
Deprecated Method Class Where 1.1 Replacement
Deprecated
--------------------------------------------------------------------------------
See How to Convert
action Component 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, getItemCount
Menu
countMenus MenuBar getMenuCount
deliverEvent Component, dispatchEvent
Container
disable() MenuItem setEnabled(false)
enable() Component, setEnabled(true)
MenuItem
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
processFocusEvent
See How to Convert
gotFocus Component Event-Handling Code for
information on preferred ways
to handle events.
processEvent
See How to Convert
handleEvent Component Event-Handling Code for
information on preferred ways
to handle events.
hide Component setVisible(false)
insertText TextArea insert
insets Container getInsets
Component,
inside Polygon, contains
Rectangle
isSelected List isIndexSelected
processKeyEvent
keyDown Component See How to Convert
Event-Handling Code.
processKeyEvent
keyUp Component See How to Convert
Event-Handling Code.
Component,
layout Container, doLayout
ScrollPane
locate Component, getComponentAt
Container
location Component getLocation
processFocusEvent
lostFocus Component See How to Convert
Event-Handling Code.
Component,
minimumSize Container, getMinimumSize
TextArea,
TextField
processMouseEvent
mouseDown Component See How to Convert
Event-Handling Code.
processMouseMotionEvent
mouseDrag Component See How to Convert
Event-Handling Code.
processMouseEvent
mouseEnter Component See How to Convert
Event-Handling Code.
processMouseEvent
mouseExit Component See How to Convert
Event-Handling Code.
processMouseMotionEvent
mouseMove Component See How to Convert
Event-Handling Code.
processMouseEvent
mouseUp Component See How to Convert
Event-Handling Code.
move Component, setLocation
Rectangle
Component,
nextFocus Container, transferFocus
Window
postEvent Component, dispatchEvent
Window
Component,
preferredSize Container, getPreferredSize
TextArea,
TextField
replaceText TextArea replaceRange
reshape Component, setBounds
Rectangle
resize Component, setSize
Rectangle
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
--------------------------------------------------------------------------------
. ¿ø·¡ÀÇ 1.0.2ÀÇ Äڵ带 À§ÀÇ Å×À̺íÀ» ÂüÁ¶ÇÏ¿© ¼öÀÛ¾÷À¸·Î ÇÒ ¼öµµ ÀÖÁö¸¸
´ÙÀ½°ú °°Àº toolÀ» ÀÌ¿ëÇÏ¿© ÀÚµ¿À¸·Î conversionÇÏ´Â °Ô Æí¸®ÇÏ´Ù.
www% JAVA_HOME/java/docs/guide/awt/updateAWT DialogWindow.java > tmp.java
www% diff tmp.java DialogWindow.java
33c33
< dialog.setVisible(true);
---
> dialog.show();
38c38
< textArea.append(text + "\n");
---
> textArea.appendText(text + "\n");
47c47
< window.setVisible(true);
---
> window.show();
87c87
< setVisible(false);
---
> hide();
www%
www% cp tmp.java DialogWindow.java
www% javac -deprecation DialogWindow.java
DialogWindow.java:18: Note: The method boolean handleEvent(java.awt.Event) in class java.awt.Component has been deprecated, and class DialogWindow (which is not deprecated) overrides it.
public boolean handleEvent(Event event) {
^
DialogWindow.java:26: Note: The method boolean handleEvent(java.awt.Event) in class java.awt.Component has been deprecated.
return super.handleEvent(event);
^
DialogWindow.java:29: Note: The method boolean action(java.awt.Event, java.lang.Object) in class java.awt.Component has been deprecated, and class DialogWindow (which is not deprecated) overrides it.
public boolean action(Event event, Object arg) {
^
DialogWindow.java:81: Note: The method boolean action(java.awt.Event, java.lang.Object) in class java.awt.Component has been deprecated, and class SimpleDialog (which is not deprecated) overrides it.
public boolean action(Event event, Object arg) {
^
Note: DialogWindow.java uses a deprecated API. Please consult the documentation for a better alternative.
5 warnings
www%
. À§ÀÇ °úÁ¤À» º¸¸é updateAWT¸¦ ÀÌ¿ëÇÏ¿© ¿ÏÀüÇÏ°Ô convertÇÒ ¼ö ¾øÀ½À» ¾Ë°Ô
µÇ¾úÀ» °ÍÀÌ´Ù. Áï À§ÀÇ ¿¹Á¦¿¡¼ º¸¸é handleEvent, actionµî ¼ÒÀ§ Event CodeµîÀº
ÀÚµ¿À¸·Î º¯È¯ÀÌ ¾ÈµÇ°í ¾Æ·¡ÀÇ Å×À̺íÀ» ÂüÁ¶ÇÏ¿© ¼öÀÛ¾÷À¸·Î °íÃÄÁÖ¾î¾ß ÇÑ´Ù.
Event-Handling Code Conversion Table
--------------------------------------------------------------------------------
1.0 | 1.1
--------------------------------------------------------------------------------
Event/Method |Generated By | Interface | Methods
--------------------------------------------------------------------------------
|Button, List, | |
|MenuItem, |ActionListener |actionPerformed
| | |(ActionEvent)
|TextField | |
ACTION_EVENT/action |--------------------------------------------------------
|Checkbox, | |
|CheckboxMenuItem,|ItemListener |itemStateChanged
| | |(ItemEvent)
|Choice | |
--------------------------------------------------------------------------------
| | |windowClosing
| | |(WindowEvent)
| | |windowOpened
| | |(WindowEvent)
| | |windowIconified
| | |(WindowEvent)
WINDOW_DESTROY | | |windowDeiconified
| | |(WindowEvent)
WINDOW_EXPOSE | | |windowClosed
| | |(WindowEvent) (no
WINDOW_ICONIFY |Dialog, Frame |WindowListener |1.0 equivalent)
WINDOW_DEICONIFY | | |windowActivated
| | |(WindowEvent) (no
| | |1.0 equivalent)
| | |windowDeactivated
| | |(WindowEvent) (no
| | |1.0 equivalent)
--------------------------------------------------------------------------------
| | |componentMoved
| | |(ComponentEvent)
| | |componentHidden
| | |(ComponentEvent)
| | |(no 1.0 equivalent)
WINDOW_MOVED |Dialog, Frame |ComponentListener|componentResized
| | |(ComponentEvent)
| | |(no 1.0 equivalent)
| | |componentShown
| | |(ComponentEvent)
| | |(no 1.0 equivalent)
--------------------------------------------------------------------------------
SCROLL_LINE_UP | | |
SCROLL_LINE_DOWN | | |
SCROLL_PAGE_UP | |AdjustmentListener|
SCROLL_PAGE_DOWN |Scrollbar |(or use the new |adjustmentValueC
| | |hanged(Adjustment
SCROLL_ABSOLUTE | |ScrollPane class)|Event)
SCROLL_BEGIN | | |
SCROLL_END | | |
--------------------------------------------------------------------------------
LIST_SELECT |Checkbox, | |
LIST_DESELECT |CheckboxMenuItem,|ItemListener |itemStateChanged
| | |(ItemEvent)
|Choice, List | |
--------------------------------------------------------------------------------
MOUSE_DRAG/mouseDrag |Canvas, Dialog, | |mouseDragged
| | |(MouseEvent)
MOUSE_MOVE/mouseMove |Frame, Panel, |MouseMotionListener|mouseMoved
| | |(MouseEvent)
|Window | |
--------------------------------------------------------------------------------
| | |mousePressed
| | |(MouseEvent)
MOUSE_DOWN/mouseDown | | |mouseReleased
| | |(MouseEvent)
MOUSE_UP/mouseUp |Canvas, Dialog, | |mouseEntered
| | |(MouseEvent)
MOUSE_ENTER/mouseEnter|Frame, Panel, |MouseListener |mouseExited
| | |(MouseEvent)
MOUSE_EXIT/mouseExit |Window | |mouseClicked
| | |(MouseEvent) (no
| | |1.0 equivalent)
--------------------------------------------------------------------------------
KEY_PRESS/keyDown | | |
KEY_RELEASE/keyUp | | |keyPressed
| | |(KeyEvent)
KEY_ACTION/keyDown |Component |KeyListener |keyReleased
| | |(KeyEvent)
KEY_ACTION_RELEASE/keyUp| | |keyTyped(KeyEvent)
| | |(no 1.0 equivalent)
--------------------------------------------------------------------------------
GOT_FOCUS/gotFocus | | |focusGained
| | |(FocusEvent)
LOST_FOCUS/lostFocus |Component |FocusListener |focusLost
| | |(FocusEvent)
--------------------------------------------------------------------------------
No 1.0 equivalent. | |ContainerListener|componentAdded
| | |(ContainerEvent)
| | |componentRemoved
| | |(ContainerEvent)
--------------------------------------------------------------------------------
No 1.0 equivalent. | |TextListener |textValueChanged
| | |(TextEvent)
--------------------------------------------------------------------------------
. ¾Æ·¡´Â conversionÀ» ¸¶Ä£ÈÄÀÇ ¿¹Á¦ ÄÚµåÀÌ´Ù.
www% vi DialogWindow.java
import java.awt.*;
import java.awt.event.*;
public class DialogWindow extends Frame
implements WindowListener,
ActionListener {
private boolean inAnApplet = true;
private SimpleDialog dialog;
private TextArea textArea;
public DialogWindow() {
textArea = new TextArea(5, 40);
textArea.setEditable(false);
add("Center", textArea);
Button button = new Button("Click to bring up dialog");
button.addActionListener(this);
Panel panel = new Panel();
panel.add(button);
add("South", panel);
addWindowListener(this);
}
public void windowClosed(WindowEvent event) {
}
public void windowDeiconified(WindowEvent event) {
}
public void windowIconified(WindowEvent event) {
}
public void windowActivated(WindowEvent event) {
}
public void windowDeactivated(WindowEvent event) {
}
public void windowOpened(WindowEvent event) {
}
public void windowClosing(WindowEvent event) {
if (inAnApplet) {
dispose();
} else {
System.exit(0);
}
}
public void actionPerformed(ActionEvent event) {
if (dialog == null) {
dialog = new SimpleDialog(this, "A Simple Dialog");
}
dialog.setVisible(true);
}
public void setText(String text) {
textArea.append(text + "\n");
}
public static void main(String args[]) {
DialogWindow window = new DialogWindow();
window.inAnApplet = false;
window.setTitle("DialogWindow Application");
window.pack();
window.setVisible(true);
}
}
class SimpleDialog extends Dialog implements ActionListener {
TextField field;
DialogWindow parent;
Button setButton;
SimpleDialog(Frame dw, String title) {
super(dw, title, false);
parent = (DialogWindow)dw;
//Create middle section.
Panel p1 = new Panel();
Label label = new Label("Enter random text here:");
p1.add(label);
field = new TextField(40);
field.addActionListener(this);
p1.add(field);
add("Center", p1);
//Create bottom row.
Panel p2 = new Panel();
p2.setLayout(new FlowLayout(FlowLayout.RIGHT));
Button b = new Button("Cancel");
b.addActionListener(this);
setButton = new Button("Set");
setButton.addActionListener(this);
p2.add(b);
p2.add(setButton);
add("South", p2);
//Initialize this dialog to its preferred size.
pack();
}
public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
if ( (source == setButton)
| (source == field)) {
parent.setText(field.getText());
}
field.selectAll();
setVisible(false);
}
}
----------------------------------------------------------------------------
Revision History
ÀÛ¼ºÀÏÀÚ : 97.07.21
ÀÛ¼ºÀÚ : À̹ÎÈ£
¼öÁ¤ÀÏÀÚ :
¼öÁ¤ÀÚ :