(澳门正规博彩十大网站) JavaFX 获取控件问题?

用javaFX开发桌面应用遇到以下问题,
fxml里定义界面

在java程序里获取fxml定义的界面并显示

问题:我想获取fxml里定义的button控件和webview控件,查了很多资料还是没明白该怎么做?
难道JavaScript的getElementById和Android的findViewById在JavaFX里面没有嘛?

谢谢

我写了个Demo,你看一下注释就能够明白了

FXMLDocument.fxml文件

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.*?>
<?import javafx.scene.*?>
<?import javafx.scene.web.*?>
<?import javafx.scene.text.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?> <!-- 通过fx:controller="fxml.login.FXMLExampleController绑定controller -->
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="210.0" prefWidth="350.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fxml.login.FXMLExampleController"> <children> <!-- 通过fx:id绑定控件,onMouseClicked="#click"绑定事件 --> <Button fx:id="button" alignment="CENTER" contentDisplay="BOTTOM" mnemonicParsing="false" onMouseClicked="#click" text="按钮" textAlignment="CENTER" wrapText="true"> <font> <Font size="14.0" /> </font> <cursor> <Cursor fx:constant="DEFAULT" /> </cursor> </Button> </children>
</VBox>

FXMLExampleController.java文件

package fxml.login; import fxml.alert.Alert;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.stage.Stage; public class FXMLExampleController { @FXML private Button button;// fx:id="button" @FXML protected void click throws Exception {//onMouseClicked="#click" button.setText"Hahahahah"; System.out.println"hello"; Alert alert = new Alert; alert.startnew Stage; alert.stop; }
}

FXMLExample.java 启动文件

package fxml.login; import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage; public class FXMLExample extends Application { @Override public void startStage primaryStage throws Exception { //载入布局 Parent root = FXMLLoader.loadgetClass.getResource"FXMLDocument.fxml"; Scene scene = new Sceneroot; primaryStage.setTitle"FXML Welcome"; primaryStage.setScenescene; primaryStage.show; } public static void mainString[] args { launchargs; } }

在fxml中设置fx:controller,然后控件设置fx:id,然后在Controller中使用@FXML注解相应的控件对象。

类似js和Android中的方法可以使用:
Button button = Buttonparent.lookup”#myButton”;

发表评论

电子邮件地址不会被公开。 必填项已用*标注