0
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 for details 重新编译。请帮我弄清楚我哪里出错了。谢谢

4

2 回答 2

2

show();被贬低用于setVisible(true)查看。

以下是 java 文档的描述。

已弃用。从 JDK 版本 1.5 开始,由 setVisible(boolean) 取代。

使窗口可见。如果 Window 和/或其所有者还不能显示,则两者都可以显示。窗口将在可见之前进行验证。如果窗口已经可见,这会将窗口带到前面。

于 2013-11-15T10:57:07.730 回答
0

show()功能已弃用;将其替换为setVisible(true).

只是为了理解:在大多数情况下,使用已弃用的东西应该仍然有效,编写该代码的人只是建议您不要这样做。这里的想法是,通常应该替换一段代码,但不应该破坏兼容性;因此,旧函数被标记为已弃用@Deprecated注释,如果正确完成,将会有关于从现在开始使用什么的描述。在该软件的未来版本中,可能会删除标记为已弃用的功能。

于 2013-11-15T10:57:20.117 回答