import java.awt.*;
import javax.swing.*;
import java.util.*;

public class JBall extends JFrame{
JBallPanel news=new JBallPanel();
public JBall(){

super("JBall");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(420,220);
 JPanel pane=new JPanel();
 pane.setLayout(new GridLayout(1,1,15,15));
  pane.add(news);
  setContentPane(pane);
show();
news.scroll();
}
public static void main(String arg[]){
JBall head=new JBall();
}
}
class JBallPanel extends JPanel{
 String[] headlines={"hello","how are you?"};
int y=76;
void scroll(){
while(true){
y=y-1;
if(y<-7)
y=76;
repaint();
try{
Thread.sleep(250);
}catch(InterruptedException e){}
}
}
public void paintComponent(Graphics comp){
Graphics2D comp2D=(Graphics2D)comp;
comp.setColor(getBackground());
comp.fillRect(0,0,getSize().width,getSize().height);
comp2D.setColor(Color.blue);
for(int i=0;i<headlines.length;i++)
comp2D.drawString(headlines[i],5,y+(20*i));
}
}


当我运行上面的代码时,它说JBall.java使用或覆盖了已弃用的API,并使用-Xlint:deprecation重新编译以获取详细信息。请帮我弄清楚哪里出了问题。谢谢

最佳答案

show();已使用setVisible(true)进行了详细描述。

以下是Java文档的描述。


  不推荐使用。从JDK 1.5版开始,由setVisible(boolean)取代。
  
  使窗口可见。如果Window和/或其所有者还没有
  可显示的,两者都可显示。窗口将被验证
  在显示之前。如果窗口已经可见,则此
  将窗口移到最前面。

07-24 16:02