现在创建控制器来管理按钮事件。本例演示如何把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=""
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标签,因为它有自己的内联样式,覆盖了其他风格。
public class TestStar {
public static void main(String[] args) {
String star = "*";
for (int i = 0; i 5; i++) {
if (i == 0) {
System.out.print(" " + star);
System.out.println();
}
if (i == 1) {
for (int z = 0; z 4; z++) {
System.out.print(" " + star);
}
System.out.println();
}
if (i == 2) {
System.out.print(" ");
for (int x = 0; x 3; x++) {
System.out.print(" " + star);
}
System.out.println();
}
if (i == 3) {
for (int y = 0; y 2; y++) {
System.out.print(" " + star + " ");
}
}
}
}
}
是好使的 但是我没找到画五角星有什么规律(五角星好象不是正规图形吧?)如果还有什么要求的话 补充问题(如果是用*填充所有的东西 不包括 “ ”的话 我可以重新再给你写一个)
继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC
引入了注解驱动功能。现在你无须让 Controller 继承任何接口,无需在 XML 配置文件中定义请求和 Controller
的映射关系,仅仅使用注解就可以让一个 POJO 具有 Controller 的绝大部分功能 —— Spring MVC
框架的易用性得到了进一步的增强.在框架灵活性、易用性和扩展性上,Spring MVC 已经全面超越了其它的 MVC 框架,伴随着 Spring
一路高唱猛进,可以预见
Spring MVC 在 MVC 市场上的吸引力将越来越不可抗拒。
使用过低版本 Spring MVC 的读者都知道:当创建一个 Controller 时,我们需要直接或间接地实现
org.springframework.web.servlet.mvc.Controller 接口。一般情况下,我们是通过继承
SimpleFormController 或 MultiActionController 来定义自己的 Controller 的。在定义
Controller 后,一个重要的事件是在 Spring MVC 的配置文件中通过 HandlerMapping
定义请求和控制器的映射关系,以便将两者关联起来。
详细的内容请参考下面的文章:
没有,不过可以换到行首。如果你输出没有换行的话,可以用\r来回到行首。System.out.print("\r" + new Date());