package fxdemo; import java.io.File; import java.net.URL; import javafx.scene.layout.AnchorPane; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; public class Fxml1 extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) throws Exception { AnchorPane root = FXMLLoader.load(getClass().getResource("sample.fxml")); Scene scene = new Scene(root); stage.setTitle("FXML Test"); stage.setScene(scene); stage.show(); } }
package fxdemo; import javafx.scene.control.Button; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.TextField; import java.net.URL; import java.util.ResourceBundle; import javafx.event.ActionEvent; public class LoginFormController implements Initializable { @FXML private TextField textbox; @FXML private Button button; @FXML public void handleBtnClick(ActionEvent event) { // Loginボタンをクリックされた時のイベント処理 System.out.println( textbox.getText() ); } @Override public void initialize(URL url, ResourceBundle rb) { textbox.setText("input box"); } }
<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <AnchorPane xmlns:fx="http://javafx.com/fxml" fx:controller="fxdemo.LoginFormController" minWidth="100.0" minHeight="138.0" prefWidth="320.0" prefHeight="138.0"> <children> <TextField fx:id="textbox" prefWidth="160.0" AnchorPane.topAnchor="0.0" AnchorPane.leftAnchor="80.0" AnchorPane.rightAnchor="0.0" /> <Button onAction="#handleBtnClick" text="Cancel" fx:id="button" /> </children> </AnchorPane>
ボタンをクリックするとコンソールにテキストフィールドの内容が出力される
※
>javac fxdemo\Fxml1.java fxdemo\LoginFormController.java