什么时候使用AWT和Swing,什么时候不使用?

时间:2014-01-22 09:35:13

标签: java swing awt

您可以在整个网络上read AWT已经过时并且已弃用,而且Swing比AWT更旧但是应尽可能优先于AWT。但是,如何确定何时可以用Swing吊坠替换AWT组件? Web中的几个示例仍然使用可以使用Swing的AWT组件。那么有什么明确的建议从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.*及其子包的安全部分是什么?

感谢您的想法和建议。

1 个答案:

答案 0 :(得分:2)

除非你能提出一个充分的理由,否则你不需要在这个时代使用AWT。如果涉及到frame.show()这样的话,你显然在网上阅读过时的(或者只是简单可怕的)例子。