更新時間:2022-04-18 11:19:23 來源:動力節(jié)點 瀏覽2453次
我們現(xiàn)在來看看如何創(chuàng)建圖形用戶界面 (GUI)。在創(chuàng)建圖形用戶界面時,我們主要使用為我們提供現(xiàn)成組件的用戶界面庫,例如按鈕和文本區(qū)域。這些用戶界面庫負(fù)責(zé)為我們繪制組件,這意味著我們不必繪制程序中的每一個組件,只需將它們添加到其中即可。
文本界面具有與特定形式的輸入耦合的功能,而在 GUI 中,它被添加到用戶界面組件中。例如,程序員可以為界面上的按鈕添加一個方法,該方法處理與該按鈕相關(guān)的事件。
一個名為 JavaFX 的庫用于創(chuàng)建圖形用戶界面。在 Linux 機器上,您可能必須安裝 openjfx 庫 — 取決于 Java 軟件安裝方式。您可以使用以下命令在 Ubuntu(從命令行)中安裝它:
user@computer:~$ sudo apt-get install openjfx
本節(jié)中的一些測試假設(shè) tmcbeans 能夠在屏幕上自由移動光標(biāo)。在 macOS(Apple 計算機)上,必須明確授予 tmcbeans 此項權(quán)利。以下是有關(guān)如何授予此權(quán)限的說明: [macOS help] (/macos help)
我們可以通過以下程序使用 JavaFX 創(chuàng)建一個簡單的窗口。
package application;
import javafx.application.Application;
import javafx.stage.Stage;
public class JavaFxApplication extends Application {
@Override
public void start(Stage window) {
window.setTitle("Hello World!");
window.show();
}
public static void main(String[] args) {
launch(JavaFxApplication.class);
}
}
程序啟動后,如下所示。

當(dāng)啟動方法被調(diào)用時,Application 類的方法從給定的類(這里是 JavaFxApplication)創(chuàng)建一個新對象并調(diào)用它的 init 方法。init 方法在 Application 類中定義,例如用于初始化程序的對象。調(diào)用init方法后,程序調(diào)用start方法,得到一個[Stage]對象作為其參數(shù),用于描述窗口。在上面start方法的實現(xiàn)中,setTitle方法將獲取的Stage類型窗口對象的標(biāo)題設(shè)置為參數(shù)。然后調(diào)用 show 方法,從而顯示窗口。然后程序保持在持續(xù)監(jiān)聽用戶界面上的事件的狀態(tài),例如關(guān)閉導(dǎo)致應(yīng)用程序關(guān)閉的窗口。
圖形用戶界面由三個基本部分組成。Stage 對象充當(dāng)程序的窗口。為表示窗口內(nèi)場景的 Stage 對象設(shè)置了[Scene]。另一方面,Scene 對象包含一個負(fù)責(zé)安排屬于該場景的組件(例如 FlowPane)的對象,該對象包含實際的用戶界面組件。
下面的程序創(chuàng)建一個帶有單個按鈕的界面。
package application;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;
public class JavaFxApplication extends Application {
@Override
public void start(Stage window) {
Button button = new Button("This is a button");
FlowPane componentGroup = new FlowPane();
componentGroup.getChildren().add(button);
Scene scene = new Scene(componentGroup);
window.setScene(scene);
window.show();
}
public static void main(String[] args) {
launch(JavaFxApplication.class);
}
}
應(yīng)用程序看起來像這樣。

UI 組件作為“子項”添加到負(fù)責(zé)設(shè)置它們的對象 — FlowPane。這與 JavaFx 設(shè)計決策有關(guān),其中負(fù)責(zé) UI 組件的每個對象可能包含負(fù)責(zé) UI 組件的其他對象以及實際的 UI 組件。這啟用了 UI 組件的布局取決于它們在用戶界面上的位置的 GUI。例如,位于 UI 頂部的菜單項通常并排放置,而列表項則位于另一個下方。
簡單總結(jié)一下,UI結(jié)構(gòu)如下。該窗口包含一個場景對象。Scene 對象包含負(fù)責(zé)用戶界面組件布局的對象。負(fù)責(zé)組件布局的對象既可以包含 UI 組件,也可以包含負(fù)責(zé) UI 組件布局的對象。
以上就是關(guān)于“創(chuàng)建Java圖形界面編程的方法”介紹,大家如果對此比較感興趣,想了解更多相關(guān)知識,不妨來關(guān)注一下動力節(jié)點的Java在線學(xué)習(xí),里面的課程內(nèi)容從入門到精通,通俗易懂,即使沒有基礎(chǔ)也可以聽懂,希望對大家的學(xué)習(xí)能夠有所幫助哦。
相關(guān)閱讀