首頁  >  文章  >  Java  >  Java的GUI程式設計

Java的GUI程式設計

巴扎黑
巴扎黑原創
2017-07-23 13:46:044223瀏覽

一、定義

GUI全名為Graphical User Interface,即圖形使用者介面。 JDK中提供了AWT 和 Swing 兩個套件,用於GUI程式的設計和開發。

1.java .awt  abstract Window Toolkit (抽象視窗工具包),它是 java 的早期版本,元件種類有限,需要呼叫本地系統方法實現功能,重量級,有點依賴於平台。

2.javax.SWing ,是sun公司在AWT 的基礎上,建立的一套圖形用戶界面系統,提供了更多的組件,而且完全由java實現,增強了可移植性,輕量級。

SWing相當於AWT的升級版本,解決了跨平台操作的問題,但是,並不代表AWT就被徹底淘汰了,它是基礎,了解它的性能還是很重要的。

二、AWT類別層次關係

Container:為容器,是一個特殊的元件,該元件中可以透過add方法添加其他的元件進來。

簡單的程式碼範例:

import java.awt.Frame;public class Test19 {public static void main(String[] args) {
        demo();
    }static void demo() {
        Frame f = new Frame("这是我做的第一个窗口");
        f.setSize(400, 400);
        f.setLocation(40, 60);// 左上角的坐标System.out.println("運行成功");// 验证程序是否被执行了    }
}

如果做到上面的程式碼,從控制台的結果來看,程式沒有掛掉,已經被執行了。只是想要的對話框並沒有出現。

 

上面程式少一段程式碼:f.setVisible(true);

import java.awt.Frame;public class Test19 {public static void main(String[] args) {
        demo();
    }static void demo() {
        Frame f = new Frame("这是我做的第一个窗口");
        f.setSize(400, 400);
        f.setLocation(40, 60);// 左上角的坐标        
        f.setVisible(true);//使得窗口可见        
        System.out.println("運行成功");// 验证程序是否被执行了    }
}

執行結果:(值得注意的是,這個小窗口,點擊右上角的X,並不能使得該窗口關閉,這裡需要我們自己去設定)

下面示範新增一個按鈕的動作:

import java.awt.Button;import java.awt.Frame;public class Test19 {public static void main(String[] args) {
        demo();
    }static void demo() {
        Frame f = new Frame("这是我做的第一个窗口");
        f.setSize(400, 400);
        f.setLocation(40, 60);// 左上角的坐标f.setVisible(true);// 使得窗口可见Button b = new Button("按钮");// 需要导包f.add(b);// 添加该按钮System.out.println("運行成功");// 验证程序是否被执行了    }
}

執行結果:(注意,有按鈕的,按鈕在沒有設定大小和位置的時候,預設為佔滿邊框了)

總結:

對於眾多的GUI元件,根據其作用,又可以分為兩大類,基本元件和容器。

基本元件:按紐,文字方塊之類,不能容納其他元件。

容器:可以容納其他元件,例如視窗、對話方塊等,所有的容器都是java.awt.Container 的直接或間接子類別(上面的Frame 就是一個容器)

附,思考:

上面的程式,執行到  System.out.println("運行成功");  就結束了,實際上這時main函數就結束了。但窗口還在。我們甚至還可以進行操作。那麼一定是有別的前台線程在運行,可以理解為創建Frame的時候,又啟了一個線程。

以上是Java的GUI程式設計的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn