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重新编译:弃用以获取详细信息。请帮我弄清楚我哪里出错了。谢谢
答案 0 :(得分:2)
show();
使用setVisible(true)
进行展示以进行查看。
以下是java docs的描述。
已弃用。自JDK 1.5版开始,由setVisible(boolean)取代。
使窗口可见。如果窗口和/或其所有者尚未 可显示,两者都可显示。窗口将被验证 在被发现之前。如果窗口已经可见,这个 将窗口带到前面。
答案 1 :(得分:0)
不推荐使用show()
函数;将其替换为setVisible(true)
。
只是为了理解:在大多数情况下,使用被弃用的东西仍然可以使用,编写该代码的人只是建议您不要这样做。这里的想法是,通常应该替换一段代码,但不应该破坏兼容性;因此,使用@Deprecated
注释将旧函数标记为已弃用,如果正确完成,则将从现在开始对将要使用的内容进行描述。在该软件的未来版本中,可以删除标记为已弃用的功能。