如何把fxml文件和java代码编写的事件控制器相关联

作者&投稿:梁弘 (若有异议请与网页底部的电邮联系)
进行javafx编程时,如何将sample.fxml文件中控件和事件程序自动添加到Controller.java中~

一,瘦客户端,富客户端简介
富客户端【RIA】开发可以有多种,主要的有 MS C# Silverlight, Adobe Flash/Flex,Oracle Java JavaFX,有些运行在浏览器中,有些运行在浏览器外;

瘦客户端主要是指 HMTL+JS+CSS 在浏览器中运行的系统。

二,JavaFX 环境搭建

目前很多游戏或系统还很多使用富客户端开发,这里介绍Java 的 JavaFX ,使用JavaFX开发,首先就是开发环境的搭建,JavaFX的搭建环境需要如下:

1,java JDK ,是运行java必备的环境,安装后还设置系统环境变量等,使用 J2SE 7+版,
2,Eclipse ,优秀的 Java 的集成开发环境,使用 V3.7.2 版本,
3,javaFX 插件 JavaFX Scene Builder 1.0,用来开发界面UI,即 .fxml 文件的生成,支持随见即所得的效果,
4,javaFX 插件下载后安装到Eclipse开发环境中,如何安装具体忘了,可以参考 JavaFX 工具安装和用法介绍 http://efxclipse.org/

三,开发步骤

安装了上面的软件之后,即可开发JavaFX项目了,步骤一般是:

1,在Eclipse中新建一个项目或 Maven项目;

2,使用插件工具开发建立 .fxml 文件,即程序UI界面;

3,编写界面对应的控制器Java类文件,类继承哪个控件类[可视具体情况定],实现哪个接口[可视具体情况定];

4,编写一个主类,用于启动程序,加载各种资源;

不过CSDN前端时间[2012.09]有报道将来瘦客户端才是王道,发展主流的主要趋势。

可以在fxml文件中给你的button添加一个fx:id,例如叫做button,然后在控制类中添加如下代码:
@FXML

private Button button;

之后就可以给它添加事件了。

现在创建控制器来管理按钮事件。本例演示如何把FXML和Java代码编写的事件控制器相关联。

在Projects窗口,右击 Sample.java,选择 Refactor-- Rename .

输入FXMLExampleController后点击Refactor .

打开FXMLExampleController.java删除代码,用下面的代替 Example
9 .

Example 9
FXMLExampleController.java
package fxmlexample;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Label;

public class FXMLExampleController {
@FXML private Label buttonStatusText;

@FXML protected void handleSubmitButtonAction(ActionEvent event) {
buttonStatusText.setText("Submit button pressed");
}

@FXML protected void handlePasswordFieldAction(ActionEvent event) {
buttonStatusText.setText("Enter key pressed");
}
}
@FXML注解用来标识非公开控制器成员和方法。

作为Java的补充,也可以使用其他编译型语言如Scala来实现控制器。.

现在可以运行了。输入内容点击Submit试试。

想要完整代码,请下载 FXMLExample.zip .

使用脚本语言

除了使用Java创建控制器,可以使用任何提供JSR223-可编译脚本引擎的语言。比如 JavaScript,
Groovy, Jython, 还有Clojure.下面是用 JavaScript编码FXML的。

在fxml_example.fxml文件中,添加JavaScript声明到XML声明后。

<?language javascript?>

在 Button标记中,改变方法名称
:

onAction="handleSubmitButtonAction(event);"

更新标记PasswordField :

onAction="handlePasswordFieldAction(event);"

移除fx:controller 从 BorderPane标记中,在
<script>中添加js方法 ,见Example
10 .

Example 10 JavaScript in FXML
<BorderPane xmlns:fx="http://javafx.com/fxml">
<fx:script>
function handleSubmitButtonAction() {
buttonStatusText.setText("Calling the JavaScript");
}
function handlePasswordFieldAction(event) {
buttonStatusText.text = "More JavaScript";
}
</fx:script>

当然也可以把js方法写进外部文件 (比如 fxml_example.js)然后像下面这样引用:

<fx:script source="fxml_example.js"/>

使用脚本编写FXML,调试时可能不会步入函数体。

使用样式表

使用内联样式,也可以添加样式表然后为结点设置关联。下面创建了样式表来定义网格布局和标签控件的样式。

创建样式表.

在Projects窗口,右击fxmlexample文件夹,选择New -- Other .

在 New File对话框中,选择Other -- Cascading Style Sheet , 然后 Next .

输入 fxmlstylesheet后点击Finish .

用下面的代码代替原来的代码 Example
11 .

Example 11 Contents of Style
Sheet
@charset "utf-8";
/*
Document : FXMLstylesheet.css
*/

.grid-pane {
-fx-padding: 80 0 0 0;
}

.label {
-fx-font: normal 36px Tahoma;
}

打开 FXMLExample.java,把样式表加入到下面代码前面 s tage.show() .scene.getStylesheets().add("fxmlexample/fxmlstylesheet.css");

打开 fxml_example.fxml添加样式类.

为<String>元素添加导入语句。

<?import java.lang.*?>

用下面代码代替GridPane Example
12 .

Example 12 Style Class for Grid
Pane
<GridPane alignment="top_center" hgap="8" vgap="8">
<styleClass>
<String fx:value="grid-pane"/>
</styleClass>

用下面代码代替"Sign In" Label 。 Example
13 .

Example 13 Style class for
Label
<Label text="%signIn"
GridPane.columnIndex="0" GridPane.rowIndex="0">
<styleClass>
<String fx:value="label"/>
</styleClass>
</Label>

使用<styleClass>
标签时,风格会应用到所有的类,除非它有自己的内联风格。所以Example
13 中的更改不仅应用到了 Sign
In标签,也赋予了Username 和Password标签。但不会应用到Login Example标签,因为它有自己的内联样式,覆盖了其他风格。

一,瘦客户端,富客户端简介
富客户端【RIA】开发可以有多种,主要的有 MS C# Silverlight, Adobe Flash/Flex,Oracle Java JavaFX,有些运行在浏览器中,有些运行在浏览器外;

瘦客户端主要是指 HMTL+JS+CSS 在浏览器中运行的系统。

二,JavaFX 环境搭建

目前很多游戏或系统还很多使用富客户端开发,这里介绍Java 的 JavaFX ,使用JavaFX开发,首先就是开发环境的搭建,JavaFX的搭建环境需要如下:

1,java JDK ,是运行java必备的环境,安装后还设置系统环境变量等,使用 J2SE 7+版,
2,Eclipse ,优秀的 Java 的集成开发环境,使用 V3.7.2 版本,
3,javaFX 插件 JavaFX Scene Builder 1.0,用来开发界面UI,即 .fxml 文件的生成,支持随见即所得的效果,
4,javaFX 插件下载后安装到Eclipse开发环境中,如何安装具体忘了,可以参考 JavaFX 工具安装和用法介绍 http://efxclipse.org/

三,开发步骤

安装了上面的软件之后,即可开发JavaFX项目了,步骤一般是:

1,在Eclipse中新建一个项目或 Maven项目;

2,使用插件工具开发建立 .fxml 文件,即程序UI界面;

3,编写界面对应的控制器Java类文件,类继承哪个控件类[可视具体情况定],实现哪个接口[可视具体情况定];

4,编写一个主类,用于启动程序,加载各种资源;

不过CSDN前端时间[2012.09]有报道将来瘦客户端才是王道,发展主流的主要趋势。

在FXML文件的根添加属性 ‘fx:controller="application.Demo"’,把application包下的Demo控制类绑定到该fxml文件


javafx能后来居上吗
没有规定必须放在哪个目录下,当时FXML的根节点上的fx:controller要能找到对应的Java类,并且在FXML中元素定义的fx:id要在对应的Java类里有相应类型的属性。这样就不会有noinjectablefieldfoundinfxmlcontroller。这句意思就是FXML文件中定义了类似的元素,在fx:controller对应的类里就得要声明一个TableView...

克山县17221919272: 如何把fxml文件和java代码编写的事件控制器相关联 -
朝薛怡新: 现在创建控制器来管理按钮事件.本例演示如何把FXML和Java代码编写的事件控制器相关联.在Projects窗口,右击 Sample.java,选择 Refactor-- Rename .输入FXMLExampleController后点击Refactor .打开FXMLExampleController.java删除代...

克山县17221919272: 关于javafx中java和fxml文件中按钮的映射问题 -
朝薛怡新: 可以在fxml文件中给你的button添加一个fx:id,例如叫做button,然后在控制类中添加如下代码: @FXML private Button button;之后就可以给它添加事件了.

克山县17221919272: 进行javafx编程时,如何将sample.fxml文件中控件和事件程序自动添加到Controller.java中 -
朝薛怡新: 一,瘦客户端,富客户端简介 富客户端【RIA】开发可以有多种,主要的有 MS C# Silverlight, Adobe Flash/Flex,Oracle Java JavaFX,有些运行在浏览器中,有些运行在浏览器外;瘦客户端主要是指 HMTL+JS+CSS 在浏览器中运行的系统.二...

克山县17221919272: 如何利用Java语言进行XML编程 -
朝薛怡新: 为了简化编写处理 XML 的 Java 程序,已经建立了多种编程接口.这些接口或者由公司定义,或者由标准体或用户组定义,以满足 XML 程序员的需要.本教程将讨论以下接口:Document Object Model (DOM,文档对象模型),Level 2Simple ...

克山县17221919272: JAVAFX2如何将一个FXML的内容加到另一个FXML中 -
朝薛怡新: 加到Pane中contain.getChildren().addAll(child);

克山县17221919272: 如何在JavaFX的WebView中通过JavaScript回调Java的程序 -
朝薛怡新: 在JavaFX的WebView中通过JavaScript回调Java的程序,可以通过JSObject.setMember的方法来实现.该方法可以通过JavaScript向上层访问Java代码,具体请看一下示例.Java代码先建立一个新的名为“app”的JavaScript对象.该对象哦呢...

克山县17221919272: 如何用Visual Studio编译Java源代码 -
朝薛怡新: 打开Visual Studio,建立任意工程. 把工程文件自动生成的Class1.cs等文件删掉. 向工程文件中增加一个文本文件,命名为Application.java 双击Application.java文件编辑java源代码: 在工程文件中增加一个文本文件,命名为:Compile.bat Tools -> External Tools... 增加一个entity如下,命名为 Javac 下面,将Compile.bat和Application.java这两个文件编写完整: 执行:Tools -> Javac

克山县17221919272: 如何使用Eclipse编写自己的第一个Java代码 -
朝薛怡新: 1、依次选择"文件" -- "新建" --"项目"2、项目类别选择"Java"3、项目列表选择"Java项目",然后"下一步"4、输入"项目名",如 HelloProject ,点击"完成"5、在工具条里选择"创建Java类"按钮,带"C+"符号的那个6、输...

克山县17221919272: 如何使用命令行编译以及运行java文件 -
朝薛怡新: #命令行运行java文件:1.打开(cd java文件所在目录)2.配置: set path=C盘下jdk1.5.0_05/bin所在的目录 --你自己的jdk安装目录 set classpath=. --当前路径 注:若要导包时(如.jar包),就应 set classpath=.;包的路径3.编译(dir java文件当前...

克山县17221919272: 如何使用命令行编译和运行Java代码 -
朝薛怡新: 这里7a686964616fe4b893e5b19e31333365653264给你一个具体的场景来讲述如何使用命令行编译和运行Java代码:任务 我们有一个相当标准的Java工程,它包含三个顶层文件夹: /bin-用来存放已编译好的.class文件 /lib-用来存放第三方.jar文...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网