过时API
/**
* @(#)Exam5_17.java
*
*
* @author
* @version 1.00 2007/4/8
*/
import java.awt.*;
import java.awt.event.*;
public class Exam5_17
{
public static void main(String args[])
{
Frame p=new Frame();
popWin mp=new popWin(p);
}
}
class popWin extends Window implements ItemListener
{
Frame myfra;
TextField text=new TextField( "复选框 ");
CheckboxGroup chbox=new CheckboxGroup();
Checkbox chbox1=new Checkbox( "A ",chbox,false);
Checkbox chbox2=new Checkbox( "B ",chbox,false);
Checkbox chbox3=new Checkbox( "C ",chbox,false);
Checkbox chbox4=new Checkbox( "D ",chbox,false);
Checkbox chbox5=new Checkbox( "E ",chbox,false);
popWin(Frame p)
{
super(p);
myfra=p;
setLayout(new GridLayout(6,1));
chbox1.addItemListener(this);
chbox2.addItemListener(this);
chbox3.addItemListener(this);
chbox4.addItemListener(this);
chbox5.addItemListener(this);
add(text);
add(chbox1);
add(chbox2);
add(chbox3);
add(chbox4);
add(chbox5);
pack();
show();
}
public void itemStateChanged(ItemEvent e)
{ }
}
编译说我使用和覆盖了过时的API 不知道是哪个API
------解决方案--------------------编译的时候会提示
注意:Exam5_17.java 使用或覆盖了已过时的 API。
注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。
所以你用这个命令编译
javac -Xlint:deprecation Exam5_17.java
结果
Exam5_17.java:46: 警告:[deprecation] java.awt.Window 中的 show() 已过时
show();
^
1 警告
查文档你可以发现,推荐用setVisible(boolean)代替。
也就是,你应该把show()换成setVisible(true)
------解决方案--------------------在新的jdk版本中,show()已经不再使用,你可以试一试吧它注掉,然后再执行程序,看看窗口会不会出来。
------解决方案--------------------setVisible(true)就可以了,show()不用加了
------解决方案--------------------版本问题,旧版的东西会淘汰掉!