溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JavaFx UI控件與代碼間的綁定方法

發(fā)布時(shí)間:2020-09-17 13:02:25 來源:腳本之家 閱讀:275 作者:大大大超人 欄目:編程語言

JavaFx初探一,UI控件的使用,具體內(nèi)容如下

方式一:使用純代碼直接new view控件,這樣就不涉及到與fxml文件之間的交互了

方式二:使用fxml編寫界面文件,用可視化工具scene builder 來構(gòu)建交互界面。

分兩種方式綁定控件,可以用Android的方法在java中直接調(diào)用類似findviewbyId的方法,先在xml文件中設(shè)置fxid,然后根據(jù)id去找這個(gè)控件,代碼如下

@Override
 public void start(Stage primaryStage) throws Exception{
  Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
  BorderPane borderPane = (BorderPane)root.lookup("#iiid");

  TableView tableView = new TableView();
  TableColumn columnName = new TableColumn("姓名");
  TableColumn columClass = new TableColumn("班級(jí)");
  TableColumn columNum = new TableColumn("學(xué)號(hào)");
  tableView.getColumns().addAll(columnName, columClass, columNum);

  borderPane.setCenter(tableView);

  primaryStage.setTitle("應(yīng)用測(cè)試");
  primaryStage.setScene(new Scene(root,500,500));
  primaryStage.show();
}

方式二

同樣需要設(shè)置id,不過可以通過給每個(gè)控件設(shè)置一個(gè)控制器類的方式,去獲取控件實(shí)例,在fxml文件中增加控制類的聲明 fx:controller=”sample.Controller”

注意:只能在根部局容器中才能設(shè)置這個(gè)控制器,設(shè)置好后,鼠標(biāo)選中id 快捷鍵alt+enter 即可在對(duì)應(yīng)的控制類中生成控件的對(duì)象(好像是根據(jù)注解映射來的)

控制器類也可以設(shè)置為main類,不用單獨(dú)新建一個(gè)類,根據(jù)情況定

<BorderPane fx:id="iiid" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity"  
   prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.121"        
   xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">         
 <top>                            
  <Button fx:id="button1" mnemonicParsing="false" text="按鈕1" BorderPane.alignment="CENTER"/>     
 </top>                           

</BorderPane> 

鼠標(biāo)點(diǎn)擊事件可以在 on action中定義一個(gè)方法, 然后控制類中去實(shí)現(xiàn)這個(gè)方法,在該控件被點(diǎn)擊時(shí)就會(huì)被觸發(fā)。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI