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