免費行情軟件網(wǎng)站有哪些sem競價外包公司
目錄
前言
一、介紹
二、簡單體驗
三、FXML標簽元素
四、fx屬性介紹
五、重寫initialize(名字需要保持一致)方法
六、Scene Builder快速布局
前言
如果你還沒有看過前面的文章,可以通過以下鏈接快速前往學習:
JavaFx基礎學習【一】:基本認識_明天再去學習的博客-CSDN博客
JavaFx基礎學習【二】:Stage_明天再去學習的博客-CSDN博客?
JavaFx基礎學習【三】:Scene_明天再去學習的博客-CSDN博客?
JavaFx基礎學習【四】:UI控件的通用屬性_明天再去學習的博客-CSDN博客?
一、介紹
FXML是一種在JavaFX應用程序中定義用戶界面的,基于XML的聲明性標記語言。FXML非常適用來靜態(tài)布局,如表單、控件和表格。
如果你還不是不明白FXML到底是什么,你可以類比HTML,我們可以通過HTML來做web頁面的UI,同理,我們就可以使用FXML來做JavaFx應用程序的UI。
二、簡單體驗
1、在resource文件夾下建立一個hello-view.fxml文件,內(nèi)容如下:
<?xml version="1.0" encoding="UTF-8"?><?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?><AnchorPane xmlns="http://javafx.com/javafx"xmlns:fx="http://javafx.com/fxml"><Button>我是一個按鈕</Button></AnchorPane>
2、啟動類
public class HelloApplication extends Application {@Overridepublic void start(Stage stage) throws IOException {System.out.println(getClass());Pane root = FXMLLoader.load(getClass().getResource("test.fxml"));Scene scene = new Scene(root, 320, 240);stage.setTitle("Hello!");stage.setScene(scene);stage.show();}public static void main(String[] args) {launch();}
}
3、效果
三、FXML標簽元素
1、import標簽
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
如果我們需要使用某一個類,那么我們就要將這個類導入,就像我們的java文件中的import一樣
2、布局標簽
<AnchorPane xmlns="http://javafx.com/javafx"xmlns:fx="http://javafx.com/fxml"></AnchorPane>
該布局標簽還有一個屬性”fx:controller“,用于指定事件處理控制器,后續(xù)將會介紹,還有一些其他屬性比如fx:id,fx:value,fx:constant,fx:factory,感興趣的可以自行了解
在該布局標簽中,可以使用如Button、Label等其他子標簽
四、fx屬性介紹
1、fx:id,用于指定標簽的id,通過該id,我們便能夠找到該標簽
<Button fx:id="myBtn">我是一個按鈕</Button>
2、fx:controller,用于指定事件處理控制器,我們可以給Pane指定一個事件處理控制器,這樣我們就可以在該事件處理器中,定義各種事件處理
1)創(chuàng)建一個事件控制器,給按鈕添加一個點擊事件
public class TestController {@FXMLprivate Button myBtn;@FXMLprotected void onHelloButtonClick() {System.out.println("按鈕被點擊了");myBtn.setPrefWidth(150);}}
在此處,我們的按鈕名稱屬性保持與FXML按鈕標簽中的fx:id一致,再給屬性添加@FXML注解,該按鈕屬性將會與我們的FXML文件中的按鈕保持聯(lián)系
同時,我們在該類中定義好各種事件,再給FXML按鈕添加事件方法,將會生效,FXML按鈕方法回填:
<Button fx:id="myBtn" onAction="#onHelloButtonClick">我是一個按鈕</Button>
當我們點擊按鈕,就能夠看到控制臺打印文字,也能看到按鈕寬度變長(與上圖對比):
2)先指定一個事件控制器
<AnchorPane xmlns="http://javafx.com/javafx"xmlns:fx="http://javafx.com/fxml" fx:controller="com.example.javafxlearn.TestController"><Button fx:id="myBtn">我是一個按鈕</Button></AnchorPane>
五、重寫initialize(名字需要保持一致)方法
public class TestController {@FXMLprivate Button myBtn;@FXMLprotected void onHelloButtonClick() {System.out.println("按鈕被點擊了");myBtn.setPrefWidth(150);}public void initialize(){System.out.println("組件初始化結(jié)束,可以進行初始化數(shù)據(jù)");}}
我們可以重寫initialize方法,該方法將會自動調(diào)用,在我們組件初始化完畢之后,我們可以做其他初始化操作,比如數(shù)據(jù)的加載之類的?
六、Scene Builder快速布局
你可以前往JavaFx官網(wǎng)進行下載,下載完之后可以通過拖拽的方式進行布局,此處就不介紹了,自行下載體驗