JavaFX之Controll用法
在JavaFX的UI开发中,FXController是个很重要的东西,主要是用于UI层和事件层分离。
事实上,JavaFX使用FXML来开发UI界面,有多种形式来监听我们的事件,下面我们来细看。
1.通过Controller Class来处理事件
首先我们创建一个简单的界面,包含一个Button和一个Label。
如下图:
Label的fx:id设置为mLabel,Button的fx:id设置为mButton,同时将Button的onAction设置为onButtonClick。
如下图所示:
然后我们创建一个MainController类,写下如下代码:
- import javafx.fxml.FXML;
- import javafx.scene.control.Button;
- import javafx.event.ActionEvent;
- import javafx.scene.control.Label;
- public class MainLayoutController {
- @FXML
- private Button mButton;
- @FXML
- private Label mLabel;
- @FXML
- public void onButtonClick(ActionEvent event) {
- mLabel.setText("HelloWorld");
- }
- }
记住,我们需要在FXML的最上层添加fx:controller = "" 指向自己的MainController类(带包名)。
我们的Main类如下:
- import javafx.application.Application;
- import javafx.fxml.FXMLLoader;
- import javafx.stage.Stage;
- import javafx.scene.Parent;
- import javafx.scene.Scene;
- public class Main extends Application {
- @Override
- public void start(Stage primaryStage) {
- try {
- Parent parent = FXMLLoader.load(getClass().getResource("MainLayout.fxml"));
- Scene scene = new Scene(parent,300,200);
- scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
- primaryStage.setScene(scene);
- primaryStage.show();
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- launch(args);
- }
- }
通过FXMLLoader加载FXML,并添加到Scene里面。
运行效果如下:
当我们点击按钮的时候,文本内容变成HelloWorld。
这个就是我之前的文章中曾经讲过的事件方式。
2.像Android一样处理事件
接下来,我们来看看另外一种处理事件的方式。
事实上,JavaFX提供类似于Android的一些方法,我们可以通过fx:id来查找指定的控件,并通过代码实现我们的事件。
我们将上面的Main方法改动一下如下:
- import javafx.application.Application;
- import javafx.fxml.FXMLLoader;
- import javafx.stage.Stage;
- import javafx.scene.Parent;
- import javafx.scene.Scene;
- import javafx.scene.control.Button;
- import javafx.scene.control.Label;
- public class Main extends Application {
- @Override
- public void start(Stage primaryStage) {
- try {
- Parent parent = FXMLLoader.load(getClass().getResource("MainLayout.fxml"));
- Label label = (Label)parent.lookup("#mLabel");
- Button button = (Button)parent.lookup("#mButton");
- button.setOnAction(e ->{
- label.setText("HelloWorld JavaFX");
- });
- Scene scene = new Scene(parent,300,200);
- scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
- primaryStage.setScene(scene);
- primaryStage.show();
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- launch(args);
- }
- }
我们通过lookup根据fx:id来查找控件,并添加事件处理。
运行效果如下:
大家可以明显看见,我们通过lookup查找到控件后,添加的事件覆盖了FXController中的事件。
这就是另外一种类似Android的查找控件-添加事件的模式,可以根据自己的需要酌情处理。
另外在e(fx)clipse 1.1版本里面,已经可以像Nebeans一样,通过fxml自动生成FXController了,还是非常的方便的。
文章转载:http://blog.csdn.net/ml3947
JavaFX之Controll用法相关推荐
- 总结常用的Javafx功能及用法(上)
总结常用的Javafx功能及用法 什么是Javafx 一个窗口都有哪些内容 制作一个简单的窗口 一些方法 Stage scene Pane node(一般node同用的方法,这里用label举例) 关 ...
- 总结常用的Javafx功能及用法(下)
总结常用的Javafx功能及用法 控件的绑定和监听 事件驱动编程 什么是事件驱动 创建一个点击移动事件 创建一个拖拽移动文件的事件 FXML布局 Scene Builder的使用 Controller ...
- arc lint java,JavaFX 类 Arc用法及代码示例
Arc类是JavaxFX的一部分.圆弧类在指定的某些给定值上创建圆弧,例如圆弧的中心,起始角度,圆弧的长度(长度)和半径.弧形类扩展了形状类. 该类的构造函数是 Arc():创建弧类的空实例 Arc( ...
- 基于JavaFX实现的数据库学生管理系统
0 前言 本博客所有内容和代码仅用来学习,无任何商用,如有侵权请联系我删除. 本文原创,创作不易,转载请注明!!! 源码如下: 度盘链接:https://pan.baidu.com/s/1M1nzoO ...
- 【Java】Java中Pair的使用
做104. 二叉树的最大深度 这道题的时候用到了Pair,是DFS用栈来实现的时候. Pair类 Pair类在javafx.util 包中 import javafx.util.Pair; 用法 用键 ...
- (Java实现)图片合成GIF动图(“复古”Swing界面)
1.项目简介 项目名称:pic2gif 项目实现:将选定的几张图片(支持jpg,png,bmp,gif等) 合成为一张gif图 关键字:图片处理,Java,Swing 2.项目结构 图片处理部分 Sw ...
- MFC Slider Controll的相关用法
滑动控件是Windows中最常用的控件之一.一般而言它是由一个滑动条,一个滑块和可选的刻度组成,用户可以通过移动滑块在相应的控件中显示对应的值.通常,在滑动控件附近一定有标签控件或编辑框控件,用于显示 ...
- VTL-vm模板的变量用法
加载foot模块页 #parse("foot.vm") #foreach($item in $tables) #set($strEnd = $item.Length - 1) ...
- JavaFX打包工具(javafxpackager)
2019独角兽企业重金招聘Python工程师标准>>> 首先创建一个JavaFX文件,Hello World package test;import javafx.applicati ...
最新文章
- 2020年数据科学领域4个最热门的趋势
- 你看的每一篇Nature论文,都是这样出炉的!
- 我的团队[六]———功夫在诗外
- 山石网科SG-6000-E5560配置SSL ***实例
- 虚拟机中使用Samba实现文件共享,并在win10上创建映射网络驱动器
- 电话骗术升级了,提高警惕! (转自公司内部新闻组,真人真事)
- [转]nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件
- 计算机科学分为几个部分,计算机由几部分组成各部分的功能是什么
- WordPress插件-WBOLT热门关键词推荐插件v1.3.0 Pro绿色版
- 如果用float实现居中
- 文本匹配开山之作--双塔模型及实战
- 图片夹_【第8期】EHS大咖答疑解惑吊运事故的罪魁祸首之一:钢丝绳夹!不看不知道!...
- java u盘检测工具,BadUSB测试记录
- OpenWRT(十一)LuCi开发(三)
- 华工历次数学实验源代码
- 京东扫描平台EOS—JS扫描落地与实践
- Fastformer论文解读
- 现实 虚拟世界_现实世界的规则引擎
- 一代爱国电脑天才,郭盛华的传奇一生
- Android TextView 如何判断是否已经省略