当前位置: 首页 > news >正文

使用JavaFx Fxml笔记

使用JavaFx Fxml实现账号密码登录 

HelloApplication.java:
package com.example.dr295cmonth7;import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.geometry.Insets;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.ButtonType;
import javafx.stage.Stage;import java.io.IOException;
import java.util.Objects;public class HelloApplication extends Application {//private 私有对象private Stage primaryStage;@Overridepublic void start(Stage stage) throws IOException {//赋值this.primaryStage = stage;FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("table.fxml"));Scene scene = new Scene(fxmlLoader.load(), 0, 0);scene.getStylesheets().add(Objects.requireNonNull(getClass().getResource("assets/styles.css")).toExternalForm());stage.setTitle("DR295C数据采集传输仪");stage.setScene(scene);stage.show();}public static void main(String[] args) {launch();}public void showSuccessDialogAndNavigate() {Alert alert3 = new Alert(Alert.AlertType.INFORMATION);alert3.setTitle("登录成功");alert3.setHeaderText("欢迎登录!");alert3.setContentText("即将跳转至主页面");alert3.showAndWait().ifPresent(response -> {if (response == ButtonType.OK) {//点击确定之后的逻辑} else {// 用户点击了取消按钮或关闭了对话框的处理逻辑System.out.println("用户点击了取消按钮或关闭了对话框");}});}
}
调起其他页面方法
// HelloApplication helloApplication = new HelloApplication();
// helloApplication.showSuccessDialogAndNavigate();

login.fxml:

<?xml version="1.0" encoding="UTF-8"?><?import javafx.scene.layout.*?>
<?import javafx.scene.control.*?><GridPane xmlns:fx="http://javafx.com/fxml"fx:controller="com.example.dr295cmonth7.LoginView" alignment="center" hgap="10" vgap="10"><VBox alignment="CENTER" maxWidth="300.0" prefWidth="300.0" spacing="10.0"><HBox alignment="CENTER" maxWidth="300.0" prefWidth="300.0" spacing="10.0"><Label text="登录" GridPane.columnIndex="0" GridPane.rowIndex="0"/></HBox><HBox alignment="CENTER" maxWidth="300.0" prefWidth="300.0" spacing="10.0"><Label text="账号:" GridPane.columnIndex="0" GridPane.rowIndex="0"/><TextField fx:id="usernameField" GridPane.columnIndex="1" GridPane.rowIndex="0"/></HBox><HBox alignment="CENTER" maxWidth="300.0" prefWidth="300.0" spacing="10.0"><Label text="密码:" GridPane.columnIndex="0" GridPane.rowIndex="1"/><PasswordField fx:id="passwordField" GridPane.columnIndex="1" GridPane.rowIndex="1"/></HBox><Label fx:id="welcomeText" alignment="CENTER" maxWidth="1.7976931348623157E308"style="-fx-text-fill: red;"/><Button text="登录" onAction="#handleLogin" GridPane.columnIndex="1" GridPane.rowIndex="2"/></VBox>
</GridPane>

 handleLogin.java:

package com.example.dr295cmonth7;import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.stage.Stage;import java.util.Objects;public class LoginView {@FXMLprivate TextField usernameField;@FXMLprivate PasswordField passwordField;@FXMLprivate Label welcomeText;@FXMLprivate Button jumpButton;@FXMLprivate void handleLogin() throws Exception {String usernameValue = usernameField.getText();String passwordValue = passwordField.getText();if (usernameValue.isEmpty() || passwordValue.length() < 6) {Alert alert = new Alert(Alert.AlertType.ERROR);alert.setTitle("提示");alert.setHeaderText("账号和密码不能为空,密码长度至少为 6 位");alert.showAndWait();welcomeText.setText("账号和密码不能为空,密码长度至少为 6 位");return;}if ("admin".equals(usernameValue) && "123456".equals(passwordValue)) {//跳转页面Parent subPage = FXMLLoader.load(Objects.requireNonNull(getClass().getResource("table.fxml")));Scene subPageScene = new Scene(subPage);Stage stage = (Stage) jumpButton.getScene().getWindow();stage.setScene(subPageScene);stage.show();//调起其他页面方法// HelloApplication helloApplication = new HelloApplication();// helloApplication.showSuccessDialogAndNavigate();} else {// 登录失败的提示Alert alert = new Alert(Alert.AlertType.ERROR);alert.setTitle("错误");alert.setHeaderText("账号或密码错误");alert.showAndWait();}}
}

使用JavaFx Fxml实现开始结束时间:

首先创建 TimeRange.fxml 文件:

<?xml version="1.0" encoding="UTF-8"?><?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.DatePicker?>
<?import javafx.scene.control.Label?><HBox xmlns:fx="http://javafx.com/fxml/1" spacing="10"><Label text="创建日期"/><DatePicker fx:id="startDatePicker" prefWidth="140.0"/><Label text="-"/><DatePicker fx:id="endDatePicker" prefWidth="140.0"/><Button onAction="#query" text="查询" textFill="WHITE" GridPane.columnIndex="2" GridPane.rowIndex="0" styleClass="button-all-common" />
</HBox>

然后创建 TimeRangeController.java 类:

import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.fxml.FXML;
import javafx.scene.control.DatePicker;import java.time.LocalDate;public class TimeRangeController {private ObjectProperty startDate = new SimpleObjectProperty();@FXMLprivate DatePicker startDatePicker;private ObjectProperty endDate = new SimpleObjectProperty();@FXMLprivate DatePicker endDatePicker;//以后七天:LocalDate.now().plusDays(7)  ;前七天:LocalDate.now().minusDays(7)public TimeRangeController() {// 初始化日期属性 方法一:startDate.set(LocalDate.now().minusDays(7));endDate.set(LocalDate.now());// 初始化日期属性 方法二:
//        LocalDate today = LocalDate.now();
//        startDate.set(today.minusDays(7));
//        endDate.set(today);}@FXMLpublic void initialize() {startDatePicker.valueProperty().bindBidirectional(startDate);endDatePicker.valueProperty().bindBidirectional(endDate);}//查询@FXMLvoid query(ActionEvent event) {System.out.println(startDate.get());   //开始时间System.out.println(endDate.get());   //结束时间}}

使用JavaFx Fxml定义各种类型的数据:

字符串 + 整数 :
private StringProperty searchValue = new SimpleStringProperty();
@FXML
private TextField searchField;

表格:

@FXML
private TableView<User> operateTableView;@FXML
private TableColumn<User, String> startTime;@FXML
private TableColumn<User, String> endTime;@FXML
private TableColumn<User, String> operator;

 

 日期:

private ObjectProperty startDate = new SimpleObjectProperty();
@FXML
private DatePicker startDatePicker;

 开关

@FXML
    private CheckBox booleanCheckBox;

相关文章:

使用JavaFx Fxml笔记

使用JavaFx Fxml实现账号密码登录 HelloApplication.java&#xff1a;package com.example.dr295cmonth7;import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.geometry.Insets; import javafx.scene.Parent; import javafx.scene.Scene; i…...

友盟U-APM——优秀的前端性能监控工具

在数字化转型浪潮的推动下,移动应用已成为企业连接用户、驱动业务增长的核心载体。然而,随着应用复杂度的日益提升,用户对于应用性能稳定性的期待也水涨船高。面对应用崩溃、卡顿、加载缓慢等频发问题,如何确保应用的流畅运行,成为产研团队亟待解决的关键挑战。在此背景下,友盟…...

人工智能与机器学习原理精解【10】

文章目录 数值优化基础理论线性模型基本形式特性应用学习算法 向量输入的二次函数的凸性概述二次函数的一般形式凸函数的定义分析二次函数的凸性注意 详细解释向量输入的二次函数的凸性分析一、二次函数的一般形式二、凸函数的定义三、二次函数的Hessian矩阵四、判断二次函数的…...

TypeScript 简介

文档 typeScript官网中文文档&#xff1a;https://www.tslang.cn/index.html中文文档(简洁点)&#xff1a;https://typescript.bootcss.comMDN 前言 JavaScript 引入编程社区已有 20 多年&#xff0c;如今已成为有史以来使用最广泛的跨平台语言之一。JavaScript 最初是一种用…...

什么是知识库?为什么我需要一个?

在互联网的历史上&#xff0c;知识库的定义已经多次改变。最初&#xff0c;它是一个术语&#xff0c;用于描述任何比常见关系“数据库”更先进的复杂数据存储系统。 现在&#xff0c;随着 SaaS 的出现&#xff0c;知识库一词有了更多不同的含义。 根据定义&#xff0c;知识库…...

MySQL学习(16):视图

视图是一种虚拟临时表&#xff0c;并不真正存储数据&#xff0c;它的作用就是方便用户查看实际表的内容或者部分内容 1.视图的使用语法 &#xff08;1&#xff09;创建 create view 视图名称 as select语句; #视图形成的虚拟表就来自于select语句所查询的实际表&#xff0c;…...

android13关机按钮 去掉长按事件 去掉启动到安全模式 删除关机长按

总纲 android13 rom 开发总纲说明 目录 1.前言 2.界面效果 3.问题分析 4.代码修改 5.编译替换运行 6.彩蛋 1.前言 在Android操作系统中,关机按钮通常具有多种功能,包括短按关机、长按启动语音助手或重启设备等。在某些情况下,用户或设备管理员可能希望自定义关机按…...

递归求数组和

...

MySQL数据库介绍

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、数据库介绍 1、什么是数据库 数据库就是一个存放计算机数据的仓库&#xff0c;这个仓库是按照一定的数据结构&#xff08;数据结构是指数据的组织…...

向量数据库性能测试工具(VectorDBBench.com)性价比排名

排名 向量数据库(不同硬件配置) 价格/性能比 QP$(每百万次查询所花费的价格)中型数据集, OpenAI 无标量过滤 QP$(每百万次查询所花费的价格)中型数据集, OpenAI 低标量过滤 QP$(每百万次查询所花费的价格)中型数据集, OpenAI 高标量过滤 QP$(每百万次查询所花费的价…...

2024年的AI人工智能风口是Python?一篇文章告诉你为什么!

Python是一种面向对象的、解释型的、通用的、开源的脚本编程语言&#xff0c;它之所以非常流行&#xff0c;我认为主要有三点原因&#xff1a; 1.Python 简单易用&#xff0c;学习成本低&#xff0c;看起来非常干净&#xff1b; 2.Python 标准库和第三库众多&#xff0c;功能…...

使用SpringBoot集成CAS、应用场景和示例代码

Spring Boot与CAS集成可以为应用程序提供单点登录&#xff08;SSO&#xff09;功能&#xff0c;CAS&#xff08;Central Authentication Service&#xff09;是一种单点登录协议&#xff0c;用于通过一个中央认证服务器来进行认证&#xff0c;从而使用户可以通过一次登录访问多…...

python爬取某财富网

点赞的人太多了。我只能修改一下代码… 感觉不对劲啊、 过程&#xff1a; 点击底部的第3页&#xff0c;第5页&#xff0c;网页刷新了&#xff0c;但是顶部的url地址没有变。那么就是 动态加载&#xff0c; 就是 XHR. 直接请求api. 实验代码如下: import requestsheaders {…...

Python 【机器学习】 进阶 之 【实战案例】房价数据中位数分析 之 [ 选择并训练模型 ] [ 模型微调 ] | 3/3(含分析过程)

Python 【机器学习】 进阶 之 【实战案例】房价数据中位数分析 之 [ 选择并训练模型 ] [ 模型微调 ] | 3/3&#xff08;含分析过程&#xff09; 目录 Python 【机器学习】 进阶 之 【实战案例】房价数据中位数分析 之 [ 选择并训练模型 ] [ 模型微调 ] | 3/3&#xff08;含分析…...

NLP-使用Word2vec实现文本分类

Word2Vec模型通过学习大量文本数据&#xff0c;将每个单词表示为一个连续的向量&#xff0c;这些向量可以捕捉单词之间的语义和句法关系。本文做文本分类是结合Word2Vec文本内容text&#xff0c;预测其文本标签label。以下使用mock商品数据的代码实现过程过下&#xff1a; 1、…...

基于SpringBoot实现验证码功能

目录 一 实现思路 二 代码实现 三 代码汇总 现在的登录都需要输入验证码用来检测是否是真人登录&#xff0c;所以验证码功能在现在是非常普遍的&#xff0c;那么接下来我们就基于springboot来实现验证码功能。 一 实现思路 今天我们介绍的是两种主流的验证码&#xff0c;一…...

字节测开面筋大总结!!!!

字节测开 字节 测开 一二三面 面经字节测开实习凉经字节测开一面字节测开一面凉经字节测开一面凉经字节测开一面凉经字节测开一面凉经字节跳动测开&#xff08;电商&#xff09;一面字节测开实习二面字节测开面经字节测开面经字节测开实习一面字节测开一面&#xff08;挂&#…...

Mindspore框架DCGAN模型实现漫画头像生成|(二)DCGAN模型构建

Mindspore框架DCGAN模型实现漫画头像生成 Mindspore框架DCGAN模型实现漫画头像生成|&#xff08;一&#xff09;漫画头像数据集准备Mindspore框架DCGAN模型实现漫画头像生成|&#xff08;二&#xff09;DCGAN模型构建Mindspore框架DCGAN模型实现漫画头像生成|&#xff08;三&a…...

mongo-csharp-driver:MongoDB官方的C#客户端驱动程序!

MongoDB一个开源、高性能、无模式的文档型数据库&#xff0c;在日常项目开发中&#xff0c;运用也是非常广泛。 MongoDB官方也针对各门编程语言&#xff0c;都推出相应的客户端驱动程序&#xff0c;下面一起了解下C#版本。 01 项目简介 mongo-csharp-driver是 MongoDB官方C#…...

网络流量分析>>pcapng文件快速分析有用价值解析

引言 在网络安全和流量管理中&#xff0c;解析网络协议数据包是了解网络行为和检测潜在威胁的关键步骤。本文介绍了如何使用Python解析和分析TCP、UDP和ICMP协议的数据包&#xff0c;并统计端口的访问次数。本文的示例代码展示了如何处理不同协议的数据包&#xff0c;提取关键…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...