首页 > 其他分享 >如何接收用户事件_以Button点击为例

如何接收用户事件_以Button点击为例

时间:2023-05-23 21:22:59浏览次数:44  
标签:为例 button javafx scene onButtonClick 点击 import Button

如何接收用户事件_以Button点击为例

JavaFX 中与用户进行交互的方式可以通过事件的回调。我们可以给一个控件(比如 Button )绑定一个事件回调函数,当相关事件触发时(比如 Button 被点击),JavaFX 将调用这个回调函数。

以 Button 为例,在我们创建好 Button 后,调用 setOnAction 方法为其设置一个回调函数:

Button button = new Button("Click Me");
button.setOnAction( e -> onButtonClick() );
vBox.getChildren().add(button);

setOnAction 接受一个函数式接口,因此我们可以传递一个 lambda 表达式,在这里,我把具体的处理代码写在了 onButtonClick 这个函数里:

private void onButtonClick()
{
    System.out.println("Button Clicked");
}

现在,当我们点击按钮时,就会得到如下的效果:

image

代码示例

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class EventHandlerExample extends Application
{
    private void onButtonClick()
    {
        System.out.println("Button Clicked");
    }

    private Pane buildLayout()
    {
        VBox vBox = new VBox();

        Button button = new Button("Click Me");
        button.setOnAction( e -> onButtonClick() );
        vBox.getChildren().add(button);

        return vBox;
    }

    @Override
    public void start(Stage window) throws Exception
    {
        Scene scene = new Scene(this.buildLayout(), 400, 300);
        window.setScene(scene);
        window.setTitle(this.getClass().getSimpleName());
        window.show();
    }

    public static void main(String[] args)
    {
        launch(args);
    }
}

总结

接收用户事件的方式是采用事件的回调,具体步骤是:

  1. 初始化好一个控件
  2. 调用控件的设置事件回调的方法,传递一个 lambda 表达式(或匿名内部类,或对应的接口实现)
  3. 将控件安装到场景图中(也就是添加到父节点中)

标签:为例,button,javafx,scene,onButtonClick,点击,import,Button
From: https://www.cnblogs.com/javafx-howto/p/17426429.html

相关文章

  • C# Winform按钮避免重复点击
    btn_01.Enabled=false;//执行任务的函数和代码//执行任务的函数和代码Application.DoEvents();btn_01.Enabled=true;就是让应用程序的消息队列自动走完(在按钮正常前清空消息队列即可)......
  • iOS initWithFrame:frame] 与 [UIButton buttonWithType] 对比
    What'sthedifferencebetweenthefollowingtwocodesnippets?1.UIButton*button=[UIButtonbuttonWithType:UIButtonTypeCustom];button.frame=frame;2.UIButton*button=[[[UIButtonalloc]initWithFrame:frame]autorelease];-buttonWithType:UI......
  • 【iOS开发】UIWebView调用JS点击事件(stringByEvaluatingJavaScriptFromString)
    一、场景描述产品需求是移动端app要调用h5页面,然后监听h5代码中的某个方法,最终执行h5中的具体代码。二、具体代码.m文件@interfaceViewController()<UIWebViewDelegate>@property(nonatomic,strong)UIWebView*webView;@end@implementationViewController-(void)viewDid......
  • 相关数据进行训练(以心脏器官为例)
    数据训练1、下载相关数据(Task02_Heart)得到这样结构的数据:与教程中的Lung数据相符:2、使用命令进行数据训练pythontrain.py--config**configs/nnunet/msd_lung/nnunet_3d_fullres_msd_lung_fold0.yml**这里放置本机的文件路径--log_iters20--precisionfp16--nnunet-......
  • 相关数据进行训练(以心脏器官为例)
    数据训练1、下载相关数据(Task02_Heart)得到这样结构的数据:与教程中的Lung数据相符:2、使用命令进行数据训练pythontrain.py--config**configs/nnunet/msd_lung/nnunet_3d_fullres_msd_lung_fold0.yml**这里放置本机的文件路径--log_iters20--precisionfp16--nnunet-......
  • 点击周边可关闭的弹窗
    在Canvas下新建UI-Panel,依次添加ButtonImageText为子节点。  Panel铺满需要识别点击的区域在Panel上挂载Button组件取消Image的Image组件和Text的Text组件中RaycastTarget的勾选编写脚本,挂载在Panel上usingUnityEngine;usingUnityEngine.UI;publicclassWindo......
  • 源代码管理工具GitHub使用指南-以“寻舍网”项目为例
    GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享......
  • win10 任务栏 鼠标悬停不显示缩略图预览 只有点击后才显示缩略图
    改了两个地方,然后就能悬停显示缩略图了,不知道是哪个生效的1新建ExtendedUIHoverTime设成1 2savetaskbarthumbnailpreviews保存任务栏缩略图预览 ......
  • 国产BI与国外BI谁更适合中国企业,以tableau和瓴羊Quick BI为例
    这些年,国内企业引入BI工具提升企业数字化管理能力的越来越多,市面上的BI工具也开始琳琅满目起来,这给许多企业在进行BI工具选型的时候带来了“幸福的烦恼”——BI工具,到底应该选哪家,是选国外的,还是国产的?哪一种更适合我们中国企业?今天,就用国外和国产BI工具中的两个代表:tableau和瓴羊Q......
  • 【Linux】详解六种配置Linux环境变量的方法(以centos为例)
    本文时间2023-05-19作者:sugerqube漆瓷本文重理解,!!忽略环境变量加载原理!!本文目标:理解六大环境变量配置,选择合适的配置文件进行配置配置环境的理由以shell编程为例现在我们想要运行名为"sugerqube.sh"的脚本需要运行的命令是./sugerqube.sh即在命令行输入脚本的地址注:.......