2014-01-22 189 views
0

您可以在整個網絡上使用read AWT已過時並且不推薦使用,並且Swing比AWT舊但比AWT新,並且應儘可能優先於AWT。但是,如何確定何時可以用Swing吊墜替換AWT組件?網絡中的幾個例子仍然使用Swing來代替AWT組件。那麼,有沒有一個明確的建議可以從AWT中使用,哪些不是?我知道Java編譯器會給出一個簡短的說明,當我使用正式棄用的組件,例如:什麼時候和Swing一起使用AWT,什麼時候不使用?

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 

但據我瞭解網絡和甲骨文,我更喜歡通過AWT組件使用JComponents。但是,下面的代碼不會注意到我,而不是使用框架的JFrame:

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.*及其子包的安全部分是什麼?

感謝您的想法和建議。

回答

2

除非你能想出一個很好的理由,否則你不需要在這個時代使用AWT。如果涉及到frame.show()之類的內容,您顯然會在網絡上閱讀過時的(或者僅僅是可怕的)示例。

+0

例如:對於java.awt.event。*或BorderLayout,Swing中是否存在替換?那麼爲什麼oracle的官方教程仍然涉及AWT? – math

+0

事件和佈局不是組件。使用它們沒有任何問題。 – Kayaman

+0

啊,它只是關於組件而已?由於還有一個'javax.swing.event。*'包.. – math

相關問題