更新時(shí)間:2022-04-18 11:19:23 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2018次
我們現(xiàn)在來(lái)看看如何創(chuàng)建圖形用戶界面 (GUI)。在創(chuàng)建圖形用戶界面時(shí),我們主要使用為我們提供現(xiàn)成組件的用戶界面庫(kù),例如按鈕和文本區(qū)域。這些用戶界面庫(kù)負(fù)責(zé)為我們繪制組件,這意味著我們不必繪制程序中的每一個(gè)組件,只需將它們添加到其中即可。
文本界面具有與特定形式的輸入耦合的功能,而在 GUI 中,它被添加到用戶界面組件中。例如,程序員可以為界面上的按鈕添加一個(gè)方法,該方法處理與該按鈕相關(guān)的事件。
一個(gè)名為 JavaFX 的庫(kù)用于創(chuàng)建圖形用戶界面。在 Linux 機(jī)器上,您可能必須安裝 openjfx 庫(kù) — 取決于 Java 軟件安裝方式。您可以使用以下命令在 Ubuntu(從命令行)中安裝它:
user@computer:~$ sudo apt-get install openjfx
本節(jié)中的一些測(cè)試假設(shè) tmcbeans 能夠在屏幕上自由移動(dòng)光標(biāo)。在 macOS(Apple 計(jì)算機(jī))上,必須明確授予 tmcbeans 此項(xiàng)權(quán)利。以下是有關(guān)如何授予此權(quán)限的說(shuō)明: [macOS help] (/macos help)
我們可以通過(guò)以下程序使用 JavaFX 創(chuàng)建一個(gè)簡(jiǎn)單的窗口。
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)后,如下所示。
當(dāng)啟動(dòng)方法被調(diào)用時(shí),Application 類的方法從給定的類(這里是 JavaFxApplication)創(chuàng)建一個(gè)新對(duì)象并調(diào)用它的 init 方法。init 方法在 Application 類中定義,例如用于初始化程序的對(duì)象。調(diào)用init方法后,程序調(diào)用start方法,得到一個(gè)[Stage]對(duì)象作為其參數(shù),用于描述窗口。在上面start方法的實(shí)現(xiàn)中,setTitle方法將獲取的Stage類型窗口對(duì)象的標(biāo)題設(shè)置為參數(shù)。然后調(diào)用 show 方法,從而顯示窗口。然后程序保持在持續(xù)監(jiān)聽(tīng)用戶界面上的事件的狀態(tài),例如關(guān)閉導(dǎo)致應(yīng)用程序關(guān)閉的窗口。
圖形用戶界面由三個(gè)基本部分組成。Stage 對(duì)象充當(dāng)程序的窗口。為表示窗口內(nèi)場(chǎng)景的 Stage 對(duì)象設(shè)置了[Scene]。另一方面,Scene 對(duì)象包含一個(gè)負(fù)責(zé)安排屬于該場(chǎng)景的組件(例如 FlowPane)的對(duì)象,該對(duì)象包含實(shí)際的用戶界面組件。
下面的程序創(chuàng)建一個(gè)帶有單個(gè)按鈕的界面。
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)用程序看起來(lái)像這樣。
UI 組件作為“子項(xiàng)”添加到負(fù)責(zé)設(shè)置它們的對(duì)象 — FlowPane。這與 JavaFx 設(shè)計(jì)決策有關(guān),其中負(fù)責(zé) UI 組件的每個(gè)對(duì)象可能包含負(fù)責(zé) UI 組件的其他對(duì)象以及實(shí)際的 UI 組件。這啟用了 UI 組件的布局取決于它們?cè)谟脩艚缑嫔系奈恢玫?GUI。例如,位于 UI 頂部的菜單項(xiàng)通常并排放置,而列表項(xiàng)則位于另一個(gè)下方。
簡(jiǎn)單總結(jié)一下,UI結(jié)構(gòu)如下。該窗口包含一個(gè)場(chǎng)景對(duì)象。Scene 對(duì)象包含負(fù)責(zé)用戶界面組件布局的對(duì)象。負(fù)責(zé)組件布局的對(duì)象既可以包含 UI 組件,也可以包含負(fù)責(zé) UI 組件布局的對(duì)象。
以上就是關(guān)于“創(chuàng)建Java圖形界面編程的方法”介紹,大家如果對(duì)此比較感興趣,想了解更多相關(guān)知識(shí),不妨來(lái)關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java在線學(xué)習(xí),里面的課程內(nèi)容從入門(mén)到精通,通俗易懂,即使沒(méi)有基礎(chǔ)也可以聽(tīng)懂,希望對(duì)大家的學(xué)習(xí)能夠有所幫助哦。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743