《第十章 Java FX UI组件ppt课件.pptx》由会员分享,可在线阅读,更多相关《第十章 Java FX UI组件ppt课件.pptx(162页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第十章 Java FX UI组件中国铁道出版社Java程序设计Java程序设计第十章 Java FX UI组件Label10.1按钮复选框目录CONTENTE10.210.3单选按钮10.4文本域10.5文本区域10.6组合框10.7列表视图滚动条10.810.9滑动条10.10示例学习10.11Java程序设计第十章 Java FX UI组件知识目标【知识目标】1.使用各种UI组件来创建图形用户界面;2.使用Label类创建具有文本和图形的按钮;3.使用Button类创建具有文本和图形的按钮,通过setOnAction方法来设置处理器;4.使用CheckBox类创建一个复选框;5.使用Rad
2、ioButton类来创建一个单选按钮,并使用ToggleGroup将单选按钮分组;6.使用TextField类来输入数据,以及使用PasswordField类来输入密码;7.使用TextArea类来多行输入数据;8.使用ComboBox来选择单个条目;9.使用ListView来选择单个或者多个条目;10.使用ScrollBar来选择一个范围内的值;11.使用Slider来选择一个范围内的值。Java程序设计第十章 Java FX UI组件教学重难点【能力目标】掌握Label、Button、CheckBox、RadioButton、TextField、Password、TextArea、Comb
3、oBox、ListView、ScrollBar和Slider组件的使用。Java程序设计第十章 Java FX UI组件Label10.1Java程序设计Java程序设计第十章 Java FX UI组件在利用Java FX进行GUI程序开发时,通常需要说明或者描述一个UI组件,提示用户该组件的用途。本小节要介绍的内容Label组件就能够完成该功能。Java程序设计第十章 Java FX UI组件 在Java FX中,类表示一个Label组件,是一个显示小段文本、一个节点或同时显示两者的区域,Label组件经常用来给其他组件(通常为文本域)做标签。通常情况下,Label组件位于所描述组件的左边、
4、右边、顶部或者底部。Java程序设计第十章 Java FX UI组件类Label继承自类类。类Labeled定义了很多属性,如表10-1所示,这些属性都可以通过对应的get和set方法来获取和设置其值。Java程序设计第十章 Java FX UI组件表10-1中的graphic属性可以是任何一个节点,比如一个形状、一个图形或者一个组件。类Label除了具有表10-1所示的属性外,还具有特定的属性labelFor,该属性的数据类型是ObjectProperty,该属性用于指定该标签组件说明描述的场景图中另一个组件对象。Java程序设计第十章 Java FX UI组件创建Label对象Java F
5、X API提供了三种标签类的构造器来创建标签Label对象,如表10-2所示。Java程序设计第十章 Java FX UI组件/创建空标签Label label1 = new Label();/创建纯文字标签Label label2 = new Label(Search);/创建带图标和文字的标签Image image = new Image(getClass().getResourceAsStream(labels.jpg);Label label3 = new Label(Search, new ImageView(image); 利用构造方法来创建标签Label对象:一旦在代码中创建了标
6、签,就可以通过标签Label类的set方法向标签对象增加文字或图像内容。Java程序设计第十章 Java FX UI组件/ 给标签文本设置字体/使用字体类的构造方法label1.setFont(new Font(Arial, 30);/使用字体类的静态方法label2.setFont(Font.font(Cambria, 32);如果没有为标签指定任何字体,则使用默认的字体大小来绘制。如果要为标签提供一个字体文字大小以替换默认大小,可以使用Labeled类中的setFont()方法。Java程序设计第十章 Java FX UI组件/ 利用CSS样式给标签文本设置字体label1.setStyl
7、e(-fx-font: 30 arial);label2.setStyle(-fx-font: 32 cambria);或者,还可以通过层叠样式表(CSS)为标签组件指定字体设定,通过方法setStyle()给组件对象设置CSS样式。与通过Labeled类中的setFont()方法有相同的效果。Java程序设计第十章 Java FX UI组件【任务实施】编程实现:窗口中有两个文本域, 通过Label组件说明这两个文本域是用来接收用户名和密码的。分析:程序创建一个GridPane,然后将一个文本域(由类TextField创建)、一个密码域(由类PasswordField创建)、两个标签添加到Gr
8、idPane中,利用Label类的labelFor属性分别设置文本域和密码域的标签为“用户名”和“密码”。Java程序设计第十章 Java FX UI组件/ 创建文本域TextField对象TextField nameFld = new TextField();/ 利用默认构造方法创建空LabelLabel nameLbl = new Label();/ 方法setText设置标签文本nameLbl.setText(用户名:);/ 方法setLabelFor指定标签nameLbl是对场景图中nameFld进行说明描述nameLbl.setLabelFor(nameFld);Java程序设计第十
9、章 Java FX UI组件/ 创建密码域PasswordField对象PasswordField passwordFld = new PasswordField();/ 创建一个带有特定文本的Label对象Label passwordLbl = new Label(密 码:);/ 方法setLabelFor指定标签passwordLbl是对场景图中passwordFld进行说明描述passwordLbl.setLabelFor(passwordFld);Java程序设计第十章 Java FX UI组件程序见文件LabelDemo.java所示,结果如图10-2。Java程序设计第十章 Jav
10、a FX UI组件按钮10.2Java程序设计Java程序设计第十章 Java FX UI组件在Java FX GUI应用开发中,按钮是单击触发动作事件的组件。当按钮被鼠标单击时,某个动作事件会被触发,从而执行相应的动作。本小节将学习如何创建按钮,设置按钮的动作触发事件。Java程序设计第十章 Java FX UI组件 按钮(button)是单击触发动作事件的组件。Java FX提供了常规按钮、开关按钮、复选框按钮和单选按钮。这些按钮的公共特性在ButtonBase和Labeled类中定义。Labeled类定义了标签和按钮的共同属性,如表10-1所示。Java程序设计第十章 Java FX U
11、I组件Java程序设计第十章 Java FX UI组件类代表一个按钮,按钮和标签非常相似,它可以显示文本、图像或者两者相结合。除此之外,按钮还具有定义在ButtonBase类中的onAction属性,该属性设置一个用于处理按钮动作事件ActionEvent的事件处理器。Java程序设计第十章 Java FX UI组件创建Button对象Java FX API提供了三种构造方法来创建按钮组件Button对象,如表10-3所示。Java程序设计第十章 Java FX UI组件/空按钮 Button button1 = new Button();/使用特定本文为标题的按钮 Button button
12、2 = new Button(Accept); /使用标题和图标的按钮 Image imageOk = newImage(getClass().getResourceAsStream(ok.png); Button button3 = new Button(Accept, new ImageView(imageOk);创建Button对象:Java FX中,由于Button类继承自Labeled类,可以通过set方法来为未指定图标或文本的按钮指定按钮的内容。Java程序设计第十章 Java FX UI组件Button newBtn = new Button(New);newBtn.setOnA
13、ction(new EventHandler() Override public void handle(ActionEvent e) / 事件动作处理逻辑代码 );按钮的主要功能是在鼠标单击时产生一个动作。我们可以通过9-2节介绍的方法来注册事件处理器,定义当用户单击按钮时将要完成的动作事件ActionEvent。一、利用ButtonBase类的setOnAction方法,需要给该方法传递一个事件处理器EventHandler对象参数;二、利用addEventHandler方法,需要给该方法传递事件类型EventType和事件处理器EventHandler对象实例作为参数。Java程序设计第
14、十章 Java FX UI组件Java FX的API显示,Button类可以使用包中的任何特效来增强按钮的可视化效果。如下代码中,当button3触发了MOUSE_ENTERED事件时,该按钮使用了DropShadow阴影效果;触发了MOUSE_EXITED时,去除特效。图10-3展示了当鼠标进入和离开按钮时的状态。Java程序设计第十章 Java FX UI组件DropShadow shadow = new DropShadow();/当鼠标位于按钮上时,增加阴影特效 button3.addEventHandler(MouseEvent.MOUSE_ENTERED, new EventHan
15、dler() Overridepublic void handle(MouseEvent e) button3.setEffect(shadow););增加特效:也可以通过方法setOnMouseEntered()来注册鼠标进入事件处理器。Java程序设计第十章 Java FX UI组件/鼠标离开时,去除特效 button3.addEventHandler(MouseEvent.MOUSE_EXITED, new EventHandler() Overridepublic void handle(MouseEvent e) button3.setEffect(null););去除特效:也可以通
16、过方法setOnMouseExited()来注册鼠标退出事件处理器。Java程序设计第十章 Java FX UI组件/ -fx-font属性为button1设定字体属性/ -fx-base属性覆盖了按钮的默认颜色button1.setStyle(-fx-font: 22 arial; -fx-base: #b6e7c9);改善按钮可视化效果可以通过Skin类定义的CSS样式。可以将样式定义在独立的CSS文件中,然后在应用程序中通过setStyle方法来开启,此方法继承自Node类,对所有的UI组件都起作用。另外,还可以通过setStyle方法直接为一个组件定义样式,代码如下所示,效果如图10-
17、4所示。Java程序设计第十章 Java FX UI组件【任务实施】编程实现:利用按钮来控制文本的移动,窗口内有一条文本消息,在窗口底部有两个按钮“”,按钮“”使文本消息向右移动。分析:程序创建一个BorderPane面板,中间部分添加消息文本对象,底部放置两个按钮,调用setOnAction方法分别给两个按钮注册动作事件处理器,点击按钮“”时文本消息的X坐标加10 。Java程序设计第十章 Java FX UI组件/ 两个按钮以HBox布局HBox paneForButtons = new HBox(20);/ 创建两个按钮并添加到HBox内Button btLeft = new Butto
18、n();paneForButtons.getChildren().addAll(btLeft, btRight);/ 设置对齐方式paneForButtons.setAlignment(Pos.CENTER);paneForButtons.setStyle(-fx-border-color: black);/ 窗口的布局方式,并将按钮放到窗口的底部BorderPane pane = new BorderPane();pane.setBottom(paneForButtons);Java程序设计第十章 Java FX UI组件/ 创建面板来放置消息文本对象Pane paneForText = n
19、ew Pane();paneForText.getChildren().add(text);pane.setCenter(paneForText);Java程序设计第十章 Java FX UI组件/ 给=按钮注册动作事件处理器btLeft.setOnAction(new EventHandler() Override public void handle(ActionEvent event) text.setX(text.getX() - 10); );Java程序设计第十章 Java FX UI组件/ 给=按钮注册动作事件处理器btRight.setOnAction(new EventHan
20、dler() Override public void handle(ActionEvent event) text.setX(text.getX() + 10); );Java程序设计第十章 Java FX UI组件程序见文件ButtonDemo.java所示,测试结果如图10-5。Java程序设计第十章 Java FX UI组件复选框10.3Java程序设计Java程序设计第十章 Java FX UI组件在学生注册时,通常需要提交用户的兴趣爱好,用户的兴趣爱好可以有多种,用户不仅仅只选择一种爱好,而会选择多种。这就需要UI组件能够支持多个选项同时被选中的功能。本节要介绍的内容复选框组件就能
21、够实现这样的功能,它允许用户进行多项选择。Java程序设计第十章 Java FX UI组件复选框(CheckBox)用于提供给用户进行多项选择。如同Button,类继承了来自ButtonBase和Labeled的所有属性,比如onAction、text、graphic、alignment、graphicTextGap、textFill、contentDisplay,如表10-1所示。Java程序设计第十章 Java FX UI组件Java程序设计第十章 Java FX UI组件类还自定义了selected、indeterminate和allowIndeterminate属性,如表10-4所示。
22、Java程序设计第十章 Java FX UI组件复选框有三个状态:checked,unchecked和undefined。Undefined状态也称为indeterminate状态。复选框支持三个选项true/false/unknown或者yes/no/unknown。通常情况下,复选框的标签是文本类型的,非图片类型的。鼠标点击后,复选框将会在三个状态中循环地从一个状态转移到另一个状态。复选框前通常存在一个方框。Unchecked状态时,方框是空的;checked状态时,方框内存在一个对勾;undefined状态时,方框内存在一条横线。如图10-6所示复选框的三态。Java程序设计第十章 Ja
23、va FX UI组件创建CheckBox对象Java FX API提供了两种构造方法来创建复选框CheckBox组件, 如表10-5所示。Java程序设计第十章 Java FX UI组件/ 创建一个仅仅支持checked和unchecked状态的复选框CheckBox hungryCbx = new CheckBox(Hungry); / 创建一个支持三种状态的复选框CheckBox agreeCbx = new CheckBox();agreeCbx.setText(Hungry);agreeCbx.setAllowIndeterminate(true);创建CheckBox对象:Java程
24、序设计第十章 Java FX UI组件类CheckBox利用selected和indeterminate属性来标记三个状态。如果indeterminate属性为true,那么复选框处于undefined状态。如果属性indeterminate值为false,属性selected的值决定着复选框处于checked 还是unchecked状态,属性selected的值为true时,复选框处于checked状体;属性selected的值为false时,复选框处于unchecked状体。表10-6总结了复选框状态的规则。Java程序设计第十章 Java FX UI组件当一个复选框被单击(选中或者取消选
25、中),都会触发一个ActionEvent,可以通过setOnAction方法给复选框注册一个事件处理器。要判断复选框是否被选中,可以通过调用isSelected()方法来实现。Java程序设计第十章 Java FX UI组件.check-box .box -fx-background-color: tan;复选框默认的CSS样式类名称为check-box。复选框还支持三个CSS伪类:selected,determinate和indeterminate。当selected属性值为true时,selected伪类将被使用;当indeterminate属性值为false时,determinate伪类
26、将被使用;当indeterminate属性值为true时,indeterminate伪类将被使用。复选框还支持两个substructures:box和mark。定制其样式可以改变显示效果,改变方框的背景颜色和边线,改变对勾的颜色和形状。box和mark都是StackPane的实例。对勾是由StackPane的形状来显示的。可以修改CSS样式来改变标记的形状、背景色和颜色。下面的CSS样式将显示黄褐色的方框和红色的对勾。.check-box:selected .mark -fx-background-color: red;Java程序设计第十章 Java FX UI组件【任务实施】编程实现:使用
27、复选框设置文本的字体是黑体还是斜体,窗口内有一条文本消息,在窗口底部有两个复选框“黑体”和“斜体”。选中某个复选框时,将文本消息字体设置为对应的字体。分析:程序创建一个BorderPane面板,中间部分添加消息文本对象,底部放置两个CheckBox 复选框,用于选择黑体还是斜体,调用setOnAction方法分别给两个复选框 注册动作事件处理器。在事件处理器内,调用方法isSelected来判断复选框是否被选中,如果被选中给消息文本设置相应的字体。Java程序设计第十章 Java FX UI组件BorderPane pane = new BorderPane(); / 创建BorderPane
28、面板Pane paneForText = new Pane(); / 创建Pane面板paneForText.getChildren().add(text); / 将消息文本放置到面板内pane.setCenter(paneForText); /放置到BorderPane面板的中间HBox paneForCheckBoxes = new HBox();paneForCheckBoxes.setStyle(-fx-border-color: green);CheckBox chkBold = new CheckBox(黑体); / 创建CheckBoxCheckBox chkItalic = n
29、ew CheckBox(“斜体”); / 创建CheckBoxpaneForCheckBoxes.getChildren().addAll(chkBold, chkItalic); / 放置到Hbox内paneForCheckBoxes.setAlignment(Pos.CENTER); / 居中对其pane.setBottom(paneForCheckBoxes); / 放置到BorderPane面板的底部Java程序设计第十章 Java FX UI组件/ 创建事件处理器EventHandler handler = new EventHandler() Override public voi
30、d handle(ActionEvent event) if (chkBold.isSelected() & chkItalic.isSelected() text.setFont(fontBoldItalic); /两个复选框都被选中 else if (chkBold.isSelected() text.setFont(fontBold); /黑体复选框被选中 else if (chkItalic.isSelected() text.setFont(fontItalic); /斜体复选框被选中 else text.setFont(fontNormal); /两个复选框都未被选中 ;Java程
31、序设计第十章 Java FX UI组件/ 给复选框注册动作事件处理器chkBold.setOnAction(handler);chkItalic.setOnAction(handler);Java程序设计第十章 Java FX UI组件程序见文件CheckBoxDemo.java所示,测试结果如图10-7。Java程序设计第十章 Java FX UI组件单选按钮10.4Java程序设计Java程序设计第十章 Java FX UI组件用户进行注册时,需要用户选择性别,仅仅有两个选项:“男”和“女”。两个选项只能选择其中之一,一个选项被选中后,其他选项自动处于未选中状态。本节要介绍的内容单选按钮(
32、radio button)组件就可以实现该功能。Java程序设计第十章 Java FX UI组件单选按钮也称为选项按钮(option button),它用于一组相互排斥的值,让用户从一组选项中选择一个单一的条目,也就是用户只能从选项列表中选择一项 。从外观上看,单选按钮类似于复选框。复选框是方形的,可以选中或者不选中;而单选按钮显示一个圆,或是填充的(选中时),或是空白的(未选中时)。类表示单选按钮,它继承自类开关按钮ToggleButton。因此,它具有ToggleButton的所有特征。单选按钮和开关按钮的不同之处是,单选按钮显示一个圆,而开关按钮渲染成类似于按钮。Java程序设计第十章
33、Java FX UI组件类ToggleButton的属性如表10-7所示。Java程序设计第十章 Java FX UI组件类ToggleButton的构造方法如表10-8所示。Java程序设计第十章 Java FX UI组件创建RadioButton对象类提供了两种构造方法。一个是无参数的默认构造方法,另一个是有一个字符串参数的构造方法。如表10-9所示。Java程序设计第十章 Java FX UI组件/ 通过默认构造方法创建单选按钮RadioButton rb1 = new RadioButton();/ 设置标题rb1.setTitle(Home);/ 使用带参数的构造方法创建单选按钮Ra
34、dioButton rb2 = new RadioButton(Calendar);创建RadioButton对象:分别使用两种构造方法创建单选按钮rb1和rb2。rb1的文本标题是通过使用方法setTitle来实现的,rb2的文本标题是通过相应的构造方法来定义的。Java程序设计第十章 Java FX UI组件像ToggleButton一样,单选按钮也有两个状态:selected和unselected。其selected属性表示当前的状态。图10-8所示,文本标签为Summer的单选按钮处于选中和未选中状态。当单选按钮被选中或者取消选中时,将会触发一个动作事件ActionEvent,可以通过
35、setOnAction方法注册动作事件的事件处理器。Java程序设计第十章 Java FX UI组件一般来说,单选按钮使用时需要捆绑成一组,一次只能选择一个。单选按钮的使用与开关按钮的使用有明显的不同。组内不需要必须存在一个选中的开关按钮;但组内必须要求存在一个被选中的单选按钮。点击组合内选中状态的单选按钮,并不会取消其选中状态使其处于未选中状态。默认情况下,通常需要通过编程方式选中组合内的某个单选按钮。可以明确地调用类RadioButton的setSelected()方法,将单选按钮设定为选中状态,设置selected属性的值为true。如果需要检测单选按钮是否处于选中状态,可以使用类Rad
36、ioButton的isSelected()方法。Java程序设计第十章 Java FX UI组件通常情况下,单选按钮使用于组合内,代表几个相互独立的选项。类ToggleGroup将所有单选按钮联系在一起,以便在某一个时刻只能选择其中之一。如下代码段创建了一个ToggleGroup类的对象,然后创建了四个单选按钮,再把这些单选按钮添加到组中,最后确定当程序启动后那个按钮被选中。ToggleGroup group = new ToggleGroup();RadioButton springBtn = new RadioButton(Spring);springBtn.setSelected(tru
37、e);springBtn.setToggleGroup(group);RadioButton summerBtn = new RadioButton(Summer);summerBtn.setToggleGroup(group);RadioButton fallBtn = new RadioButton(Fall);fallBtn.setToggleGroup(group);RadioButton winterBtn = new RadioButton(Winter);winterBtn.setToggleGroup(group);代码输出如图10-9所示结果:Java程序设计第十章 Java
38、 FX UI组件【任务实施】编程实现:利用单选按钮来改变文本的颜色,窗口内有一条文本消息,在窗口底部有四个单选按钮“红色”、“黄色”、“蓝色”和“黑色”。选中某个单选按钮时,将文本消息颜色设置为对应的颜色。分析:程序创建一个BorderPane面板,中间部分添加消息文本对象,底部放置四个RadioButton单选按钮,用于选择字体颜色,调用setOnAction方法分别给单选按钮 注册动作事件处理器。在事件处理器内,调用方法isSelected来判断复选框是否被选中,如果被选中给消息文本设置相应的字体颜色。/ 创建BorderPane面板BorderPane pane = new Border
39、Pane();/ 创建Pane对象来放置消息文本Pane paneForText = new Pane();paneForText.getChildren().add(text);pane.setCenter(paneForText);Java程序设计第十章 Java FX UI组件/ 对四个单选按钮进行布局,首先放置于Hbox容器内,再放置到BorderPane 的底部HBox paneForCheckBoxes = new HBox();paneForCheckBoxes.getChildren().addAll(redBtn, yelloBtn, blueBtn, blackBtn);p
40、aneForCheckBoxes.setAlignment(Pos.CENTER);pane.setBottom(paneForCheckBoxes);/ 创建四个单选按钮RadioButton redBtn = new RadioButton(红色);RadioButton yelloBtn = new RadioButton(黄色);RadioButton blueBtn = new RadioButton(蓝色);RadioButton blackBtn = new RadioButton(黑色);/ 将四个单选按钮捆绑为一组ToggleGroup group = new ToggleG
41、roup();redBtn.setToggleGroup(group);yelloBtn.setToggleGroup(group);blueBtn.setToggleGroup(group);blackBtn.setToggleGroup(group);Java程序设计第十章 Java FX UI组件redBtn.setOnAction(new EventHandler() Override public void handle(ActionEvent event) text.setFill(Color.RED); );yelloBtn.setOnAction(new EventHandle
42、r() Override public void handle(ActionEvent event) text.setFill(Color.YELLOW); );blueBtn.setOnAction(new EventHandler() Override public void handle(ActionEvent event) text.setFill(Color.BLUE); );blackBtn.setOnAction(new EventHandler() Override public void handle(ActionEvent event) text.setFill(Color
43、.BLACK); );给四个单选按钮注册动作事件处理器:Java程序设计第十章 Java FX UI组件程序见文件RadioButtonDemo.java所示,测试结果如图10-10。Java程序设计第十章 Java FX UI组件文本域10.5Java程序设计Java程序设计第十章 Java FX UI组件在GUI应用开发过程中,经常需要接受用户输入的单行文本信息,且文本信息中不允许存在换行和tab字符。Java FX实现该功能的就是本节所介绍的组件文本域组件。Java程序设计第十章 Java FX UI组件文本域(text field)可用于输入或显示一个字符串。类来表示文本域UI组件,它
44、提供了接受用户输入单行文本的功能,继承自TextInputControl类。Java程序设计第十章 Java FX UI组件创建TextField对象Java FX API提供了两种构造方法来创建文本域TextField组件, 如表10-10所示。Java程序设计第十章 Java FX UI组件/ 用空的初始文本创建文本域对象nameFld1TextField nameFld1 = new TextField(); / 以“Layne Estes”作为初始文本创建文本域对象nameFld2TextField nameFld2 = new TextField(Layne Estes);创建Tex
45、tField对象:Java程序设计第十章 Java FX UI组件TextField类继承自TextInputControl,表10-11列举了TextInputControl类常用的两个属性,用户输入到文本域中的内容可以通过TextInputControl类中text属性的get方法来获取。Java程序设计第十章 Java FX UI组件类还自定义了一些属性,如表10-12所示。Java程序设计第十章 Java FX UI组件与TextField相应的还有另一种输入组件:PasswordField,它是一种特殊的文本域,继承自TextField,用于输入密码,将输入文本隐藏为回显字符*。密码
46、框的构造方法只有一个默认的构造方法。以下代码段就是通过默认构造方法来创建一个初级的密码框。PasswordField passwordField = new PasswordField();passwordField.setColumns(12);passwordField.setPromptText(Your password);Java程序设计第十章 Java FX UI组件方法setPromptText为密码框指定一个伴随的提示语。和TextField类一样,PasswordField提供了setText(String text)方法来在组件中绘制文本。然而,用setText(Strin
47、g text)方法设定的字串在密码框中会被回显字符掩盖。 和TextField类一样,在密码框中键入的值可以通过getText()方法获得,可以在程序中处理这个值来设定适当的验证逻辑。Java程序设计第十章 Java FX UI组件【任务实施】编程实现:使在窗口内,创建两个文本域分别用来输入“用户名”和“密码”,在窗口底部创建一个按钮提交按钮。给提交按钮添加动作事件处理器来验证密码:如果输入的值和预定义的密码匹配,则输出消息“密码正确”;否则,输出消息“密码错误”。分析:通过Button类的方法setOnAction注册事件处理器,在事件处理器的handle方法内部,利用getText方法获取
48、用户输入的密码,然后与预定义的密码匹配。如果匹配,则用绿色字体显示消息“密码正确”;否则,用红色字体输出消息“密码错误”。Java程序设计第十章 Java FX UI组件/ 创建文本域TextField对象TextField nameFld = new TextField();/ 利用默认构造方法创建空LableLabel nameLbl = new Label();/ 方法setText设置标签文本nameLbl.setText(用户名:);/ 方法setLabelFor指定标签nameLbl是/ 对场景图中nameFld进行说明描述nameLbl.setLabelFor(nameFld);
49、/ 创建密码域PasswordField对象PasswordField passwordFld = new PasswordField();/ 创建一个带有特定文本的Lable对象Label passwordLbl = new Label(密 码:);/ 方法setLabelFor指定标签passwordLbl是/ 对场景图中passwordFld进行说明描述passwordLbl.setLabelFor(passwordFld);Java程序设计第十章 Java FX UI组件/ 注册事件处理器loginBtn.setOnAction(new EventHandler() Override
50、public void handle(ActionEvent e) if(!passwordFld.getText().equals(AAAAAA) message.setText(密码错误); message.setTextFill(Color.rgb(210, 39, 30); else message.setText(密码正确); message.setTextFill(Color.rgb(21, 117, 84); passwordFld.clear(); );Java程序设计第十章 Java FX UI组件程序见文件PasswordMatch.java所示,测试结果如图10-11。J