Java 何时将AWT与Swing一起使用,何时不使用?
您可以在web上到处看到AWT已经过时了,不推荐使用,Swing已经过时了,但是比AWT更新,并且应该尽可能优先于AWT。但是,我如何确定何时可以用摆动挂件替换AWT组件?web中的几个示例仍然使用AWT组件,可以在其中使用Swing。那么,是否有明确的建议,从AWT中使用什么,不使用什么?我知道,当我使用正式弃用的组件时,java编译器会给出一个简短的说明,例如: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
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添加了很多东西。我认为这条评论值得作为一个答案。