SWING與AWT小應(yīng)用程序的區(qū)別
SWING與AWT小應(yīng)用程序的區(qū)別,也許你以前使用過AWT進行圖形用戶界面(GUI)的設(shè)計,感覺如何呢?現(xiàn)在JAVA2提供了Swing包,向大家展示了更豐富的功能,使用它設(shè)計的界面會更友好,現(xiàn)在我們就來看一下。
以前你設(shè)計小應(yīng)用程序會擴展Applet(java.applet.Applet);現(xiàn)在為了使用Swing包,你要擴展JApplet(javax.swing.JApplet)讓我們先來看一個擴展JApplet小應(yīng)用程序的實例,然后再分析二者的區(qū)別。
程序源代嗎如下:(JAppletTest.java)
- import javax.swing.*;
- import java.awt.*;
- import java.event.*;
- public class JAppletTest extends JApplet {
- public void init() {
- Container contentPane = getContentPane();
- Icon icon = new ImageIcon("swing.gif", "A GIF on a swing");
- JLabel label = new JLabel("Swing!", icon, SwingConstants.CENTER);
- contentPane.add(label, BorderLayout.CENTER);
- }
- }
有幾點需要注意:
1、程序的***一行不是必須的,因為JApplet類使用BorderLayout的一個實例做為其內(nèi)容窗格的布局管理器,而BorderLayout的缺省約束條件是BorderLayout.CENTER,所以程序的***一行不是必須的。
2、Applet的缺省的布局管理器是FlowLayout,而FlowLayout的缺省約束條件是FlowLayout.LEFT,這是二者最顯著的區(qū)別之一。
3、JApplet是只包含一個組件的容器,這個組件就是JRootPane的一個實例,而JRootPane包含了一個稱作內(nèi)容窗格的容器。
4、“內(nèi)容窗格”,它包含與特定的小應(yīng)用程序有關(guān)的所有內(nèi)容。即是說,小應(yīng)用程序必須把所有的組件添加到內(nèi)容窗格中,而不是把它們直接添加到小應(yīng)用程序中。 5、我們不應(yīng)該直接為小應(yīng)用程序設(shè)置布局管理器。
6、JApplet的實例可以有一個菜單欄,它是由setJMenuBar方法指定的,而AWT小應(yīng)用程序卻不能。
AWT 是基于本地方法的C/C++程序,其運行速度比較快;Swing是基于AWT 的Java程序,其運行速度比較慢。以上就是SWING與AWT小應(yīng)用程序的區(qū)別。
【編輯推薦】