日期:2014-05-20  浏览次数:20643 次

过时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()不用加了
------解决方案--------------------
版本问题,旧版的东西会淘汰掉!