Java圖形用戶界面設計1

 作爲一個 Java 程序員,從論壇上感受到使用 Java 開發程序的人越來多,心中不免欣慰。但是,同樣是從論壇中,看到多數人提到 Java 就以爲是網絡開發——不是這樣的,Java 也可以開發應用程序,而且可以開發出漂亮的圖形用戶界面的應用程序,也就是 Windows/XWindow 應用程序。因此,我寫下這篇文章,希望能帶你進入Java 圖形用戶界面設計之門。
 一. AWT 和 SWING

  AWT 和 SWING 是 Java 設計 GUI 用戶界面的基礎。與 AWT 的重量級組件不同,Swing 中大部分是輕量級組件。正是這個原因,Swing 幾乎無所不能,不但有各式各樣先進的組件,而且更爲美觀易用。所以一開始使用 AWT 的程序員很快就轉向使用 Swing 了。

  那爲什麼 AWT 組件沒有消亡呢?因爲 Swing 是架構在 AWT 之上的,沒有 AWT 就沒有 Swing。所以程序員可以根據自己的習慣選擇使用 AWT 或者是 Swing。但是,最好不要二者混用——除開顯示風格不同不說,還很可能造成層次 (Z-Order) 錯亂,比如下例:

/**
* TestPanels.java
@author Fancy
*/
 
import javax.swing.*;
import java.awt.*;

public class TestPanels extends JFrame {

 
public TestPanels() {
  setDefaultCloseOperation(EXIT_ON_CLOSE);

  JPanel panel 
= new JPanel();
  
for (int i = 0; i < 2; i++{
   panel.add(
new JButton("Button 00" + i));
  }


  JTextArea textArea 
= new JTextArea(515);
  textArea.setLineWrap(
true);
  JScrollPane scrollPane 
= new JScrollPane(textArea);
  getContentPane().add(panel, BorderLayout.NORTH);
  getContentPane().add(scrollPane, BorderLayout.CENTER);

  pack();
 }


 
public static void main(String[] args) {
  TestPanels tp 
= new TestPanels();
  tp.show();
 }


}

運行這個程序,並用鼠標拖動那個名爲“cover”的子窗口,我們會發現一個非常有趣的現象,如圖:

顯然 cover 子窗口是在 controls 子窗口之上的,但是它只罩蓋住了 Swing Button,沒有罩蓋住 AWT Button。再看一會兒,你是不是有這樣一種感覺:Swing Button 是“畫”上去的,而 AWT Button 則是“貼”上去的。這就是二者混用造成層次錯亂的一個例子。

  Swing 組件有美觀、易用、組件量大等特點,也有缺點——使用 Swing 組件的程序通常會比使用 AWT 組件的程序運行更慢。但是大家都還是更喜歡用 Swing 組件,原因何在?因爲隨着計算機硬件的升級,一點點速度已經不是問題。相反的,用戶更需要美觀的用戶界面,開發人員則更需要易用的開發組件。

  ——好,我這就來教你使用 Swing 組件開發圖形用戶界面的 Java 應用程序。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章