javafx 四、使用controller

1、.fxml中添加id

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.layout.RowConstraints?>

<GridPane fx:id="root" alignment="center" hgap="10" vgap="10" xmlns="http://javafx.com/javafx/8.0.172-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.controller.Controller">
   <columnConstraints>
      <ColumnConstraints />
   </columnConstraints>
   <rowConstraints>
      <RowConstraints />
   </rowConstraints>
   <children>
      <Pane fx:id="root_view" prefHeight="600" prefWidth="900">
         <children>
            <Label layoutX="150.0" layoutY="567.0" prefHeight="23.0" prefWidth="68.0" text="用户名: " />
            <Label layoutX="400.0" layoutY="571.0" text="密码 : " />
            <Button fx:id="btn_login" onAction="#onLogin" layoutX="750.0" layoutY="567.0" mnemonicParsing="false" text="登录" />
            <TextField fx:id="userName" layoutX="200.0" layoutY="567.0" />
            <TextField fx:id="password" layoutX="450.0" layoutY="567.0" />
         </children>
      </Pane>
   </children>
</GridPane>

controller

通过注解 @FXML来自动查找id
布局中 :onAction="#onLogin" 来指定事件操作的方法
controller中定义的方法需与上边相同,并且@FXML

package sample.controller;

import com.jfoenix.controls.JFXSnackbar;
import com.jfoenix.controls.JFXSnackbarLayout;
import com.sun.deploy.util.StringUtils;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import sample.utils.StringUtil;

public class Controller {
    @FXML
    private ImageView iv_login;

    @FXML
    private Button btn_login;

    @FXML
    private TextField password;

    @FXML
    private TextField userName;

    @FXML
    private Pane root;

    @FXML
    private Pane root_view;

    @FXML
    public void onLogin(){
        String userNameText = userName.getText();
        String passwordText = password.getText();

        if(StringUtil.isEmpty(userNameText)){
            JFXSnackbar snackbar = new JFXSnackbar(root_view);
            snackbar.fireEvent(new JFXSnackbar.SnackbarEvent(new JFXSnackbarLayout("请输入用户名")));
            return;
        }

        if(StringUtil.isEmpty(passwordText)){
            JFXSnackbar snackbar = new JFXSnackbar(root_view);
            snackbar.fireEvent(new JFXSnackbar.SnackbarEvent(new JFXSnackbarLayout("请输入密码")));
            return;
        }
    }

}

运行

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值