5

クラス Windows の java.awtのメソッドshow();は非推奨です。代わりに何を使用できますか?

package adventure;
import java.awt.*;

import java.awt.image.*;
import java.awt.event.*;
import java.net.URL;
import java.net.MalformedURLException;
import java.io.*;
import java.applet.*;
// Infogar testkommentar mvh Holger 2012-06-20 kl 19.03
public class Adventure extends Frame  {
    private static final long serialVersionUID=100L;
    public Adventure() {        
    setSize(850, 440);    
    World world = new DungeonWorld ( this );        

    Person me = new Person( world, "You", null );    
    show();
    me.goTo("Dungeon");     
    add( new Player( world, me ) );    
    addWindowListener(new MyWindowAdapter ());    
    }

    class MyWindowAdapter extends WindowAdapter {

    public void windowClosing (WindowEvent e) {
        System.exit(0);
    }
    }


    // Load an image from the net, making sure it has already been
    // loaded when the method returns
    public Image loadPicture ( String imageName ) {
    Image im = null;

    // Load the image from the net
    try {
        URL imageSource = new URL( "http://www...xxx/"
                       + imageName );

        try {
        im = createImage( (ImageProducer) imageSource.getContent());
        } catch (IOException e) {}

    } catch (MalformedURLException e ) { }

    // Wait to ensure that the image is loaded
    MediaTracker imageTracker = new MediaTracker( this );
    imageTracker.addImage( im, 0 );
    try {
        imageTracker.waitForID( 0 );
    }
    catch( InterruptedException e ) { }

    return im;
    }


    // Load and play a sound from /usr/local/hacks/sounds/

    public void playSound (String name) {
    URL u = null;

    try {
        u = new URL("file:" +  "/usr/local/hacks/sounds/" + name + ".au");
    } catch (MalformedURLException e ) { }

    AudioClip a = Applet.newAudioClip(u);
    a.play();
    }

    public static void main (String[] args) {       
    System.out.println("test"); 
      new Adventure();
    }
}
4

2 に答える 2

23

の Java API を読みましょうWindow#show():こちら

@Deprecated
public void show()

非推奨。JDK バージョン 1.5 以降、 に置き換えられましたsetVisible(boolean)

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

したがって、Window#setVisible(boolean)- for show()useを使用する必要がありますsetVisible(true)

編集

一部の環境では、に置き換えるだけでアプリケーションの動作show()setVisible(true)変わります。Windowこれは、そのオーバーライドのサブクラスを作成したときに発生しますshow()( についても同じですhide())。

したがって、コード例でsetVisible(true)は とまったく同じshow()です。show()しかし、一般的には、を使用したときに実行されなくなったものを誰もオーバーライドしないように注意してsetVisible(true)ください。そのような場合、オーバーライドされたメソッドも変更する必要があります。

于 2012-06-21T08:14:37.007 に答える
5

API を確認すると、次のように表示されます。

void show()       

非推奨。JDK バージョン 1.5 以降、 に置き換えられましたsetVisible(boolean)

于 2012-06-21T08:14:37.043 に答える