JavaFX第四篇 Button按钮和事件处理

news/2024/11/15 2:58:27/

JavaFX第四篇 Button按钮和事件处理

  • 1. 代码
  • 2. 讲解
  • 3. 代码仓库

上一篇我们讲解了Hello World演示,主要用到Label标签的功能,
这里我们要介绍的是最常用的控件之一:按钮
在现在的软件开发过程中还没发现没有用到按钮的应用,
基本上用户的操作输入都赋予给它,让他去触发后面的事件,
做出对应的反应或操作。

在这里插入图片描述

1. 代码

这里的主要操作是有两个按钮:加1、减1
然后按对应的按钮,就会有对应的操作。

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;import java.util.concurrent.atomic.AtomicInteger;public class ButtonDemo extends Application {public static void main(String[] args) {launch(args);}@Overridepublic void start(Stage stage) {stage.setTitle("设置标题");// 流式布局:按照控件的添加次序按个摆放,按照从上到下、从左到右的次序摆放。FlowPane pane = new FlowPane(10, 10);// 居中显示pane.setAlignment(Pos.CENTER);// 场景Scene scene = new Scene(pane, 800, 600);stage.setScene(scene);AtomicInteger num = new AtomicInteger();// 标签Label label = new Label("初始值:" + num);// 按钮Button addButton = new Button("加1");Button subButton = new Button("减1");// 处理按钮事件addButton.setOnAction((event) -> label.setText("当前值:" + num.incrementAndGet()));subButton.setOnAction((event) -> label.setText("当前值:" + num.decrementAndGet()));// 将标签、按钮添加到场景pane.getChildren().addAll(addButton, subButton, label);stage.show();}
}

2. 讲解

这里的逻辑很简单,初始的时候显示了两个按钮和一个Label对应如下所示。
在这里插入图片描述
然后我们点击一下加1的按钮试一下,可以看到Label的值变了。
在这里插入图片描述
接着就是另一个按钮,也会有相应的操作。
在这里插入图片描述
可以看到,上面的逻辑基本上都能接受,
那我们处理的地方也可以看到就是短短的一行,
这就是Lambda的强大,后期我们再好好聊聊它。

3. 代码仓库

有喜欢的小伙伴可以学习起来啦,期待你的加入~
https://gitee.com/jack0240/yiyi-fx.git


http://www.ppmy.cn/news/517459.html

相关文章

D. Running Miles(公式转换)

Problem - D - Codeforces 有一条长为n的街道,其中第i个景点距离街道起点i英里。第i个景点的美丽值为bi。你想要在离街道起点l英里和r英里处开始和结束慢跑。当你跑步时,你会看到你经过的景点(包括起点和终点处的景点)。你对沿途慢…

C++之判断文件是否存在的几种方法

文章目录 1. 方法一:C语言之access2. 方法二:C方法之ifstream3. 方法三:fopen方法4. 方法四:sys中的stat函数方法 1. 方法一:C语言之access 可以使用C语言中unistd.h里的函数access()来判断文件是否存在,…

MusicGen配乐工具开源,教你怎么给抖音短视频配乐,助你涨粉1000!

大家好,我是千与千寻,好久不见了,很多粉丝私信我说,千寻哥这是去哪了?难道被野外捕捉了。 哈哈哈,当然不是了,千寻依然在学习ChatGPT的道路上和大家一起学习,一起搞钱! 但…

tensorRT部署之 代码实现 onnx转engine/trt模型

tensorRT部署之 代码实现 onnx转engine/trt模型 前提已经装好显卡驱动、cuda、cudnn、以及tensorRT下面将给出Python、C两种转换方式 1. C实现 项目属性配置好CUDA、tensoeRT库通常在实际应用中会直接读取onnx模型进行判断,如果对应路径已经存在engine模型&#…

redis协议与异步方式学习笔记

目录 1 交互方式 pipline2 广播机制2.1 概念演示2.2 使用场景 3 redis事物3.1 概念3.2 使用场景3.3 解决的问题3.3.1 背景:多线程竞争出现问题3.3.2 事务3.3.3 安全性事务 3.4两种类型的“事务”3.4.1 watch ... multi exec3.4.2 lua 脚本实现“原子”执行&#xff…

@4.verilog 参数

参数 参数化:参数用来定义时延和变量的宽度,以及状态的编码等 参数类型 parameter:通过例化传参,改变参数值 localparam: parameter 只能对参数赋值一次,使用defparam 实现 注 对于传多个参数时,如BUS_A…

(完美)华为麦芒4 RIO-AL00的usb调试模式在哪里打开的步骤

在我们使用PC通过数据线链接到安卓手机的时候,如果手机没有开启Usb调试模式,PC则没办法成功读到我们的手机,有时,我们使用的一些功能较强的APP好比之前我们使用的一个APP引号精灵,老版本就需要打开Usb调试模式下使用&a…

大数据学习笔记-HDFS(四)——HDFS架构

1、HDFS架构 Hadoop Distribute File System,Hadoop分布式文件系统,HDFS是Hadoop核心组件之一,作为生态圈最底层的分布式服务而存在。 HDFS解决的问题就是大数据如何存储。 架构图:主从架构(master/slave&#xff0…