类Windows中的方法show();
for java.awt已弃用。我可以用什么呢?
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();
}
}
答案 0 :(得分:21)
让我们阅读Window#show()
:here
@Deprecated
public void show()
已过时。从JDK 1.5版开始,由
setVisible(boolean)
替换。使窗口可见。如果窗口和/或其所有者尚未 可显示,两者都可显示。窗口将被验证 在被发现之前。如果窗口已经可见,这个 将窗口带到前面。
因此,您应使用Window#setVisible(boolean)
- show()
使用setVisible(true)
。
修改强>
在某些环境中,只需用show()
替换setVisible(true)
即可更改应用程序的行为。当您编写Window
的子类时会发生这种情况,该子类会覆盖show()
(对于hide()
也是如此)。
因此,在您的代码示例中,setVisible(true)
与show()
完全相同。但总的来说,只要确定,没有人会覆盖使用show()
时不再执行的setVisible(true)
。在这种情况下,您还必须更改覆盖方法。
答案 1 :(得分:5)
如果你检查API,你会看到:
void show()
已过时。从JDK 1.5版开始,由
setVisible(boolean)
替换。