Java 何时将AWT与Swing一起使用,何时不使用?

Java 何时将AWT与Swing一起使用,何时不使用?,java,swing,awt,Java,Swing,Awt,您可以在web上到处看到AWT已经过时了,不推荐使用,Swing已经过时了,但是比AWT更新,并且应该尽可能优先于AWT。但是,我如何确定何时可以用摆动挂件替换AWT组件?web中的几个示例仍然使用AWT组件,可以在其中使用Swing。那么,是否有明确的建议,从AWT中使用什么,不使用什么?我知道,当我使用正式弃用的组件时,java编译器会给出一个简短的说明,例如: import java.awt.*; public class Hello { public static void mai

您可以在web上到处看到AWT已经过时了,不推荐使用,Swing已经过时了,但是比AWT更新,并且应该尽可能优先于AWT。但是,我如何确定何时可以用摆动挂件替换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.*
及其子包的安全部分是什么


感谢您的想法和建议。

在当今时代,您没有必要使用AWT,除非您能想出一个好的理由。如果涉及到
frame.show()
之类的内容,你显然是在网上阅读过时的(或非常糟糕的)示例。

例如:Swing中是否有替换
java.awt.event.*
BorderLayout
?那么为什么oracle的官方教程仍然包含AWT呢?事件和布局不是组件。使用它们没什么错。啊,这都是关于组件的,只是?因为还有一个
javax.swing.event.*
package..AWT包含了很多我们在swing应用程序中仍然需要的非组件内容<代码>颜色,
尺寸
,许多布局,打印,拖放,Java 2D。。至于“老”这个词,我不同意。它只是“成熟”。每一个新的主要Java版本都为Swing添加了很多东西。我认为这条评论值得作为一个答案。