【发布时间】:2014-02-12 06:49:06
【问题描述】:
您可以在整个网络上read AWT 旧且已弃用,Swing 旧但比 AWT 更新,应尽可能优先于 AWT。但是我如何确定何时可以用其 Swing 挂件替换 AWT 组件? Web 中的几个示例仍然使用 AWT 组件,而可以使用 Swing 代替。那么是否有明确的建议可以从 AWT 中使用什么,而不是什么?我知道当我使用官方弃用的组件时,java编译器会给出一个简短的说明,例如:
import java.awt.*;
public class Hello {
public static void main( String[] args ) {
Frame f = new Frame( "Hello" );
f.setSize( 300, 300 );
f.show();
}
}
会产生这样的警告:
Note: Hello.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
和-Xlint:
Hello.java:9: warning: [deprecation] show() in Window has been deprecated
f.show();
^
1 warning
但就我对 web 和 oracle 的理解而言,我更喜欢使用 JComponents 而不是 AWT 组件。但是下面的代码不会注意到我使用 JFrame 而不是 Frame:
import java.awt.*;
public class Hello {
public static void main( String[] args ) {
Frame f = new Frame( "Hello" );
f.setSize( 300, 300 );
f.setVisible( true );
}
}
总而言之,当我在网络上阅读代码时,我很好奇它是否是最新的并遵循尽可能使用 Swing 的原则,或者我是否需要改进。
换句话说:java.awt.* 及其子包的安全部分是什么?
感谢您的想法和建议。
【问题讨论】: