SWING與AWT小應(yīng)用程序的區(qū)別
SWING與AWT小應(yīng)用程序的區(qū)別,也許你以前使用過(guò)AWT進(jìn)行圖形用戶(hù)界面(GUI)的設(shè)計(jì),感覺(jué)如何呢?現(xiàn)在JAVA2提供了Swing包,向大家展示了更豐富的功能,使用它設(shè)計(jì)的界面會(huì)更友好,現(xiàn)在我們就來(lái)看一下。
以前你設(shè)計(jì)小應(yīng)用程序會(huì)擴(kuò)展Applet(java.applet.Applet);現(xiàn)在為了使用Swing包,你要擴(kuò)展JApplet(javax.swing.JApplet)讓我們先來(lái)看一個(gè)擴(kuò)展JApplet小應(yīng)用程序的實(shí)例,然后再分析二者的區(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);
- }
- }
有幾點(diǎn)需要注意:
1、程序的***一行不是必須的,因?yàn)镴Applet類(lèi)使用BorderLayout的一個(gè)實(shí)例做為其內(nèi)容窗格的布局管理器,而B(niǎo)orderLayout的缺省約束條件是BorderLayout.CENTER,所以程序的***一行不是必須的。
2、Applet的缺省的布局管理器是FlowLayout,而FlowLayout的缺省約束條件是FlowLayout.LEFT,這是二者最顯著的區(qū)別之一。
3、JApplet是只包含一個(gè)組件的容器,這個(gè)組件就是JRootPane的一個(gè)實(shí)例,而JRootPane包含了一個(gè)稱(chēng)作內(nèi)容窗格的容器。
4、“內(nèi)容窗格”,它包含與特定的小應(yīng)用程序有關(guān)的所有內(nèi)容。即是說(shuō),小應(yīng)用程序必須把所有的組件添加到內(nèi)容窗格中,而不是把它們直接添加到小應(yīng)用程序中。 5、我們不應(yīng)該直接為小應(yīng)用程序設(shè)置布局管理器。
6、JApplet的實(shí)例可以有一個(gè)菜單欄,它是由setJMenuBar方法指定的,而AWT小應(yīng)用程序卻不能。
AWT 是基于本地方法的C/C++程序,其運(yùn)行速度比較快;Swing是基于AWT 的Java程序,其運(yùn)行速度比較慢。以上就是SWING與AWT小應(yīng)用程序的區(qū)別。
【編輯推薦】