当前位置:首页 > 生活百科

java界面开发工具(java图形界面代码生成工具)

栏目:生活百科日期:2025-03-02浏览:0

通过前面小节的学习,已经了解到使用JavaFX工具可以实现图形用户界面开发,接下来,就通过一个用户登录的案例来演示JavaFX的基本使用。

JavaFX有什么显著特征?

(1)创建JavaFX项目。打开Eclipse,并在Eclipse中依次选择“File”-&>“New”-&>“Others..”-&>“JavaFX Project”选项,创建一个名称为“javaFX”的项目,项目创建成功后,如图1所示。

图1 JavaFX项目默认结构

从图1可以看出,创建成功的JavaFX项目默认在application包下有两个文件:Main.java(程序的入口)和application.css(图形用户界面样式文件)。其中,Main.java文件中使用JavaFX工具初始化了一个图形界面,直接运行该文件,会得到一个空白窗口。

(2)编辑Main.java文件。在自动生成的Main.java文件中编写JavaFX项目主程序代码,如文件2所示。

文件1 Main.java

     import javafx.application.*;     import javafx.fxml.*;     import javafx.stage.*;     import javafx.scene.*;     public class Main extends Application {         public void start(Stage stage) throws Exception {             // 使用FXMLLoader加载器,加载名为“fxml_example.fxml”的fxml文件             Parent root = FXMLLoader.load(                                   getClass().getResource("fxml_example.fxml"));             // 创建一个场景             Scene scene = new Scene(root, 300, 275);             // 为图形界面窗口设置标题             stage.setTitle("FXML Welcome");             // 为图形界面窗口设置场景             stage.setScene(scene);             // 将图形界面窗口设置为可见             stage.show();         }         public static void main(String&[] args) {             // 通过Application抽象类的launch()方法启动程序             launch(args);         }     }

文件1中,Main类继承了Application抽象类并重写了start()方法,在该方法中,Stage就是JavaFX工具中用来表示整个图形工具界面窗口的类,在该类中需要加入一个Scene(场景)来进行填充,而所有的组件、元素都是构建在Scene中的。另外,在JavaFX 8中支持代码与布局和样式分离,所以在文件中通过FXMLLoader的load()方法引入了一个外联的fxml_example.fxml文件,在此fxml文件中就可以专心编写图形界面布局和组件相关功能了。

(3)创建fxml_example.fxml文件。在Main.java文件同级目录下依次选择“File”→“New”→“Others..”→“New FXML Document”选项,创建一个名称为“fxml_example”的fxml格式文件,如文件2所示。

文件2 fxml_example.fxml

     &<?xml version="1.0" encoding="UTF-8"?&>     &<!-- 引入JavaFX工具相关类 --&>     &<?import java.net.*?&>     &<?import javafx.geometry.*?&>     &<?import javafx.scene.control.*?&>     &<?import javafx.scene.layout.*?&>     &<?import javafx.scene.text.*?&>     &<!-- 创建一个GridPane网格式面板组件 --&>     &<GridPane fx:controller="application.FXMLExampleController"         xmlns:fx="http://javafx.com/fxml" alignment="center"                                                   hgap="10" vgap="10"&>         &<!-- 通过相关标签创建一个模拟登录的“用户名”和“密码”的组件 --&>         &<Text text="Welcome" GridPane.columnIndex="0" GridPane.rowIndex="0"                               GridPane.columnSpan="2" /&>         &<Label text="用户名:" GridPane.columnIndex="0" GridPane.rowIndex="1" /&>         &<TextField GridPane.columnIndex="1" GridPane.rowIndex="1" /&>         &<Label text="密  码:" GridPane.columnIndex="0" GridPane.rowIndex="2" /&>         &<PasswordField GridPane.columnIndex="1" GridPane.rowIndex="2" /&>         &<!-- 通过HBox嵌入一个可调控位置的盒子组件--&>         &<HBox spacing="10" alignment="bottom_right" GridPane.columnIndex="1"                                                          GridPane.rowIndex="4"&>             &<!-- 在HBox盒子中装入一个 Button登录按钮,同时注册监听器 --&>             &<Button text="登  录:" onAction="#handleSubmitButtonAction" /&>         &</HBox&>         &<!-- 作为登录按钮的提示框  --&>         &<Text fx:id="actiontarget" GridPane.columnIndex="0"             GridPane.columnSpan="2" GridPane.halignment="RIGHT"                                           GridPane.rowIndex="6" /&>     &</GridPane&>

文件2中,编码风格与XML文档类似。其中第1行代码用来引入fxml文件约束;第3~7行代码用于引入JavaFX工具相关类;第9~29行代码使用&<GridPane&>标签创建了一个网格式的面板组件,然后通过各种子标签和属性向该面板组件中进行填充。另外在&<GridPane&>标签中使用fx:controller=&”
application.FXMLExampleController&”引入了application包下的FXMLExampleController事件控制类,并且在第23行中,使用onAction=&”#handleSubmitButtonAction&”注册了FXMLExampleController类中的监听器方法handleSubmitButtonAction()。

(4)创建并编辑
FXMLExampleController.java文件。在Main.java文件同级目录下创建一个名为FXMLExampleController的事件处理类,然后在该文件中编写事件处理方法,如文件3所示。

文件3
FXMLExampleController.java

     import javafx.event.ActionEvent;     import javafx.fxml.FXML;     import javafx.scene.text.Text;     public class FXMLExampleController {         // 与fxml_example.fxml文件中的登录提示框fx:id一致         @FXML private Text actiontarget;         // 为fxml_example.fxml文件中的登录按钮编写事件处理         @FXML protected void handleSubmitButtonAction(ActionEvent event) {             actiontarget.setText("点击了登录按钮");         }     }

文件3中,
FXMLExampleController.java类专门用于编写事件处理方法,其中使用@FXML注解用来表示actiontarget文本属性和handleSubmitButtonAction()方法可以被fxml格式文件访问,同时handleSubmitButtonAction()的方法名与文件2中第23行代码onAction=&”#handleSubmitButtonAction&”中标记的名称需要相同,actiontarget属性名与文件2中第26行代码fx:id=&”actiontarget&”的id名也要相同。

完成上述4步操作后,运行主程序Main类,结果如图2所示。

图2 JavaFX项目初步效果图

(5)为fxml_example.fxml图形布局文件引入外联的CSS样式文件。

● 先在fxml_example.fxml文件最后的&</GridPane&>标签之前引入名称为application.css的样式表文件,示例如下所示:

&<!-- 加入名为application.css的样式表文件  --&>&<stylesheets&>&<URL value="@application.css" /&>&</stylesheets&>

● 如果要为GridPane面板组件根元素设置样式,需要在&<GridPane&>标签中添加一个styleClass=&”root&”的属性,示例如下所示:

&<GridPane fx:controller="fxmlexample.FXMLExampleController"   xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10" **styleClass="root"**&>

● 同时可以为某个组件所在标签添加一个id,为该id所在组件设置样式,比如为text=&”Welcome&”的&<Text&>标签所在组件添加一个id,示例如下所示:

&<Text **id="welcome-text"** text="Welcome"     GridPane.columnIndex="0" GridPane.rowIndex="0"     GridPane.columnSpan="2"/&>

(6)编辑application.css样式文件。打开application.css样式文件,为图8-37所示的JavaFX图形用户接口项目编写CSS样式,如文件4所示。

文件4 application.css

     /* 为GridPane面板组件根元素添加背景图片 */     .root {          -fx-background-image: url("background.jpg");     }     /* 为label标签组件设置大小、颜色、展示效果 */     .label {         -fx-font-size: 12px;         -fx-font-weight: bold;         -fx-text-fill: #333333;         -fx-effect: dropshadow( gaussian , rgba(255,255,255,0.5) , 0,0,0,1 );     }     /* 为id为welcome-text的组件设置大小、字体、颜色、展示效果 */     #welcome-text {        -fx-font-size: 32px;        -fx-font-family: "Arial Black";        -fx-fill: #818181;        -fx-effect: innershadow( three-pass-box ,rgba(0,0,0,0.7),6, 0.0 , 0 , 2 );     }     /* 为id为actiontarget的组件设置大小、颜色、展示效果 */     #actiontarget {       -fx-fill: FIREBRICK;       -fx-font-weight: bold;       -fx-effect: dropshadow( gaussian , rgba(255,255,255,0.5) , 0,0,0,1 );       }     /* 为button标签组件设置大小、颜色、展示效果 */     .button {         -fx-text-fill: white;         -fx-font-family: "Arial Narrow";         -fx-font-weight: bold;         -fx-background-color: linear-gradient(#61a2b1, #2A5058);         -fx-effect: dropshadow( three-pass-box ,rgba(0,0,0,0.6),5, 0.0 , 0 , 1 );     }     /* 设置当鼠标移到button按钮时的大小、颜色、展示效果 */     .button:hover {         -fx-background-color: linear-gradient(#2A5058, #61a2b1);     }

在文件4中,application.css文件专门用于封装文件样式,在上一步中为fxml_example.fxml图形布局文件引入了该外联的CSS样式文件,&<GridPane&>根组件的background.jpg背景图片位于该文件所在同级目录中。其中,对fxml_example.fxml文件中某个名称的标签进行样式设置时,可以使用点号+标签名(如.button)的形式进行设置;对某个id所对应的标签组件进行样式设置时,可以使用井号+id(如#welcome-text)的形式进行设置。

当编写完并引入application.css样式文件成功后,再次启动主程序入口Main类中的main()方法,结果如图3所示。

图3 JavaFX项目最终效果图

“java界面开发工具(java图形界面代码生成工具)” 的相关文章

双十一品牌促销策划方案(大型活动营销策略)

双十一将至,产品们、运营们相信都已经蓄势待发、寸土不让的想要从购物狂潮中分得一杯羹,消费者疯狂剁手一年胜似一年,如何在一年一度的购物狂欢中让消费者激情不减,优惠...

2023年微信怎么注册不了(无法注册微信原因及解决法)

新换的手机号,注册微信时,提醒该手机号已经被注册,这可能是遇到运营商“二次放号”的情况,听到这里你可能就纳闷了,难道手机号码也有“二手货”?事实上,真的有“二手...

如何进行项目管理总结(简介项目总结流程)

一、项目基本信息业主单位:承建单位:监理单位:施工地点:项目工期:项目金额:项目情况:二、项目实施过程开工准备需求调研设计开发初验试运行三、项目工程清单用表格的...

刚刚税务总局发话严查艺人税收(想从轻罚还有3个月)

近日,国家税务总局办公厅发出通知,要求进一步加强文娱领域从业人员税收管理。《通知》提出,要定期开展税收风险分析,近期要结合2020年度个人所得税汇算清缴办理情况...

icp经营许可证怎么办理(网站icp许可证申请方法)

企业办理icp许可证的作用有什么?有人说是为了增加品牌曝光度;有人说是为了合法运营的需求;有人说是为了增加企业渠道与业务。其实以上面的说法都对。对于企业来说,办...

qq群营销教程,如何利用qq群做营销

导语:在QQ群里做推广有很多种方式,这里就把一些常用的QQ群推广方式分享给大家。一、把群成员都加为你的好友当我们加进去一个群,我们可以按兵不动,悄悄地把这个群的...

2023年ipad性能排行榜(抢先看4月份的ipad性能天梯图)

传闻中3月份的苹果春季新品发布会在延期了一个月之后终于在4月21日举办,苹果首颗自研芯片M1也正式加入了到了iPad产品线之中,这颗吊打intel产品几个世代的...

win10桌面文件突然消失怎么恢复,一招快速找回桌面文件

本周二是微软2月份的补丁升级日,前两天没注意的时候就已经升级了,其中有个补丁编号为KB4532693,它在不经意间又给微软惹祸了,部分用户升级后桌面、配置文件丢...

在家用电脑怎么赚钱,八种用电脑赚钱方法

在电脑上怎样赚外快?电脑现在已经是家家户户都有的东西了,即便是一些偏远的村庄也不例外,但绝大部分人还是主要用电脑来上网聊天、玩游戏、看电影,而也有那么一小部分人...

itunes最新版本是多少(强制解除苹果手机锁屏密码)

苹果即将在今年5月下旬停止在旧系统PC上的iTunes商店购买下载服务。根据苹果发表的最新支持文件,2018年5月25日起,苹果将进行安全性变更,这会导致较早的...