原創|其它|編輯:郝浩|2009-04-27 11:38:42.000|閱讀 5140 次
概述:一個圖形用戶界面以一個top-level container開始。它為其他的界面組件提供了一個“家”,指定應用程序的總體感覺。在本教程中,向你介紹JFrame類。它將用于給一個Java應用程序創建一個簡單的top-level窗口。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
一個圖形用戶界面以一個top-level container開始。它為其他的界面組件提供了一個“家”,指定應用程序的總體感覺。在本教程中,向你介紹JFrame類。它將用于給一個Java應用程序創建一個簡單的top-level窗口。
打開你的編輯器創建一個新的文本文件,輸入如下:
import java.awt.*;
import javax.swing.*;
Java配置了一系列的代碼庫用于幫助程序員進行設計。它們提供了有具體功能的類的訪問權限,可以幫你減少在寫這些代碼時出現的煩惱。以上兩個重要的表述讓編譯者知道了這個程序師需要使用一些預先構建的功能包括"AWT" 和 "Swing"代碼庫。
AWT代表“Abstract Window Toolkit”。它包括一些類,程序員可以使用它們來做圖形組件,例如,buttons, labels, frames。Swing在AWT之上構建并提供了一套新的更復雜的圖形界面組件。只上面的兩行代碼,我們獲得了訪問這些圖形組件的權限,而且可以在Java程序中使用它們。
以下是關于類定義的重要表述,包括了我們Java程序的代碼。輸入:
//Create a simple GUI window
public class TopLevelWindow {
}
在本教材中所有剩下的代碼需要在兩個大括號中添加。TopLevelWindow類就像一本書的封面,它告訴編譯者到哪里去找主程序代碼。
這是非常好的編程風格用函數將一套相似的命令組合到一起。這樣使程序更具可讀性,而且如果你想要重新運行相同的一套指令,你只要運行函數就可以了。考慮到這一點,我將所有創建窗口的代碼組合到一個函數中去。
輸入createWindow函數定義:
private static void createWindow() {
}
創建窗口的所有代碼寫在函數的大括號中。這樣以來,當createWindow被調用時,Java程序就會創建并顯示一個窗口。
現在,讓我們來看一看使用一個JFrame對象創建窗口。輸入以下代碼,記住要把它們放在createWindow函數的大括號中。
//Create and set up the window.
JFrame frame = new JFrame("Simple GUI");
這行所做的事情就是創建一個叫"frame"的JFrame對象的一個新的實例。你可以考慮"frame"作為我們的Java應用程序的窗口。
JFrame類將會為我們做創建窗口的所有的工作,它可以處理告訴計算機如何在屏幕上畫窗口的復雜部分,并且將決定它是如何顯示的這樣有趣的部分留給我們。我們可以通過設置它的屬性來做這些,例如,它看起來是什么樣的,它的大小,它包含什么,等等。
對于新手來說,我們要確定當窗口關閉時,程序也停止了。輸入:
frame.setDefaultCloseOperation(JFrame.EXIT_ON_ CLOSE);
JFrame.EXIT_ON_CLOSE constant設置我們的Java程序在窗口關閉時停止程序。
為了讓窗口值得一看,我們應該把圖形組件放到里面。添加以下幾行代碼到createWindow函數中,創建一個新的JLabel對象:
JLabel textLabel = new JLabel("I'm a label in the window",SwingConstants.CENTER); textLabel.setPreferredSize(new Dimension(300, 100));
JLabel是一個圖形組件可以包括一個圖像或是文本。為了讓它看上去簡單,只在里面填了一個文本“I’m a label in the window.”,它的尺寸設置為寬300像素,長100像素。
現在我們已經創建JLabel,它需要添加到JFrame中:
frame.getContentPane().add(textLabel, BorderLayout.CENTER);
這個函數的最后一行代碼涉及是如何顯示窗口。添加以下:
//Display the window. frame.setLocationRelativeTo(null);
以上的行確保窗口在屏幕的中間顯示,接下來,
frame.pack();
pack()方法是一個簡單的調節窗口尺寸的方法。它根據JFrame包含的東西,自動設置窗口大小。在這種情況下,它保證了足夠大的窗口以顯示JLabel。
最后,我們需要顯示窗口:
frame.setVisible(true);
應用程序入口點
剩下要做的就是添加Java程序的入口點。只要程序一運行它就會調用createWindow()函數。在最后的大括號中輸入createWindow()這個函數:
public static void main(String[] args) {
createWindow();
}
Code Checkpoint
大量的輸入,這是很好的一點來確保你的代碼和例子像匹配。你的代碼應下如下這樣:
import java.awt.*;
import javax.swing.*;
// Create a simple GUI window
public class TopLevelWindow {
private static void createWindow() {
//Create and set up the window.
JFrame frame = new JFrame("Simple GUI");
frame.setDefaultCloseOperation(JFrame.EXIT_ON _CLOSE);
JLabel textLabel = new JLabel("I'm a label in the window",SwingConstants.CENTER);
textLabel.setPreferredSize(new Dimension(300, 100));
frame.getContentPane().add(textLabel, BorderLayout.CENTER);
//Display the window.
frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
createWindow();
}
}
將文件另存為"TopLevelWindow.java".
使用Java compiler在終端窗口編譯程序。如果你還不知道怎么去做,參見compilation steps from the first Java application tutorial。
javac TopLevelWindow.java
一旦程序編譯成功,運行程序:
java TopLevelWindow
按回車鍵,窗口出現,你將看到你的第一個窗口程序!
本教程是制作強大的用戶界面的第一塊基石。現在你知道了如何去做container,你可以添加其他的圖像組件了。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:IT專家網