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 を可視にします。Window および/またはその所有者がまだ表示可能でない場合、両方が表示可能になります。ウィンドウは、表示される前に検証されます。Window が既に表示されている場合、これにより Window が最前面に表示されます。

于 2013-11-15T10:57:07.730 に答える
0

このshow()関数は非推奨です。に置き換えsetVisible(true)ます。

理解のために: 非推奨のものを使用しても、ほとんどの場合は機能するはずです。そのコードを作成した人は、使用しないことをお勧めします。ここでの考え方は、多くの場合、1 つのコードを置き換える必要がありますが、互換性を壊してはならないということです。したがって、古い関数は@Deprecated注釈で非推奨としてマークされており、適切に行われた場合、今後は代わりに何を使用するかについての説明があります。そのソフトウェアの将来のバージョンでは、非推奨としてマークされた機能が削除される可能性があります。

于 2013-11-15T10:57:20.117 に答える