当前位置: 首页 > news >正文

方正集团网站是谁做的网站申请收录

方正集团网站是谁做的,网站申请收录,做pc端网站哪家好,海城网站设计声明:参考视频 一. Stage与Scene 舞台与场景:JavaFX应用程序将Ul容器定义为舞台(Stage)与场景(Scene)Stage类是顶级容器,它对应于窗体,其内容由Scene决定。Scene类是所有可视化内容…

声明:参考视频

一. Stage与Scene

在这里插入图片描述

  • 舞台与场景:JavaFX应用程序将Ul容器定义为舞台(Stage)与场景(Scene)Stage类是顶级容器,它对应于窗体,其内容由Scene决定。Scene类是所有可视化内容的容器(container),可以把它看成是一张画布,上面绘制了用户可以看到的内容。
  • Scene Graph 其实就是一颗多叉树,各种控件都是树中的节点。
  • 控件树的节点支持事件响应。
  • 最底层节点通常都是诸如按钮之类的控件也可以是Circle之类的图形。
  • 拥有子树节点称为容器,在JavaFX中成为“布局(Layout)”.
  • 这样做以后可以在窗口Stage中切换Scene从而实现随时切换页面,同时也可以新建Stage从而实现打开多个窗口。

二. Java FX MVC架构

在这里插入图片描述

  • 多窗体通信
    在这里插入图片描述

核心点:在MainClass初始化窗口时,将MainClass的引用传给相应窗口的控制器。之后在每个窗口的控制器中通过MainClass的引用完成从窗口的打开以及主从窗口的通信。
     在主窗口中打开新的窗口: 在MainClass初始化主窗口时,可以将MainClass的引用传给相应从窗口的控制器,然后在主窗口的控制器中通过MainClass的引用调用打开的窗口的函数,从而打开新的窗口。
    在从窗口中关闭从窗口: 在MainClass初始化从窗口时,将从窗口的stage传给从窗口的控制器,在从窗口的控制器中调用stage.close(),从而关闭从窗口。
    主窗口接收从窗口的信息:在MainClass初始化从窗口时,将主窗口的控制器的引用传给从窗口的控制器,在从窗口的控制器中调用主窗口控制器的相应方法,从而在主窗口中显示信息。
    从窗口接收主窗口的信息:在MainClass初始化从窗口时,将MainCLass的引用传给从窗口的控制器,在主窗口的控制器中通过MainCLass的引用的调用相应方法,从而在从窗口中显示信息。

demo下载

注意:在项目中加入资源时,将资源放在与包名同名的resources路径下,以此来方便使用资源文件。如下图所示在项目编译时,会将resources下的资源放到同名的包中。

在这里插入图片描述

三. 事件处理机制

  • 事件响应模式:
    • 传统的事件响应模式
    • Lamda事件响应模式
    • 声明式事件响应模式
//传统的事件响应模式
this.btn.setOnAction(new EventHandler<ActionEvent>() {@Overridepublic void handle(ActionEvent actionEvent) {welcomeText.setText("Hello World!");}});
//Lamda事件响应模式
private void getRandomInt(ActionEvent actionEvent){Random random = new Random();int i = random.nextInt();welcomeText.setText(String.valueOf(i));}
this.btn2.setOnAction(this::getRandomInt);// 声明式事件响应模式
//fxml文件中 onAction="#事件名" <Button fx:id="btn3" layoutX="229.0" layoutY="287.0" mnemonicParsing="false" onAction="#handleRandowm" text="声明式事件响应" />
@FXML
public void handleRandowm(ActionEvent actionEvent) {Random random = new Random();int i = random.nextInt();welcomeText.setText(String.valueOf(i));}
  • 事件派发链
    事件在控件树的传播流程成为事件派发连
    在这里插入图片描述

(1)事件派发链,实际上是一个双向链表,由事件目标对象负责创建。
(2)事件触发时,事件对象在链中传送
(3)事件响应方法(分为EventFilter和EventHandler两类)接收事件对象作为参数。

如下图所示,在这里插入图片描述

    //统一事件处理方法,输出event对象相关属性值//有参数决定是否消费此事件private void handleAndConsumd(Event event,boolean isConsumd,String msg) {if (isConsumd) {event.consume();}String info =String.format("Type:%s,source:%s,target:%s,consume:%s,msg:%s",event.getEventType(), event.getSource(),event.getTarget(),event.isConsumed(), msg);System.out.println(info);}void initListener(){borderpane.addEventFilter(MouseEvent.MOUSE_PRESSED,event -> handleAndConsumd(event, true, "borderpane filter mouse pressed"));borderpane.addEventHandler(MouseEvent.MOUSE_PRESSED, event -> handleAndConsumd(event, false, "borderpane handler mouse pressed"));vbox.addEventFilter(MouseEvent.MOUSE_PRESSED, event -> handleAndConsumd(event, false, "vbox filter mouse pressed"));vbox.addEventHandler(MouseEvent.MOUSE_PRESSED, event -> handleAndConsumd(event, false, "vbox handler mouse pressed"));circle.addEventFilter(MouseEvent.MOUSE_PRESSED, event -> handleAndConsumd(event, false, "circle filter mouse pressed"));circle.addEventHandler(MouseEvent.MOUSE_PRESSED, event -> handleAndConsumd(event, false, "circle handler mouse pressed"));}@Overridepublic void initialize(URL url, ResourceBundle resourceBundle) {initListener();}

三. JavaFX数据绑定机制及应用

  • JavaFX Bean Property: 包括get, set,以及property方法,JAVA FX Property具有动态监听property.addListner()和数据绑定property.bind()等特性。

  • JavaFX数据绑定的编程模式:
    在这里插入图片描述

  • 应用
    在这里插入图片描述
    分析:可以将变化的数据统一抽象为IntegerProperty,进行数据绑定,然后add 和sub只管更改IntergerProperty()(控件上有property属性的直接进行绑定,没有的话可以通过addListner()进行绑定)

    IntegerProperty integerProperty = new SimpleIntegerProperty(0);@Overridepublic void initialize(URL url, ResourceBundle resourceBundle) {arc.setStartAngle(90);arc.setLength(-0);#绑定数据numLabel.textProperty().bind(integerProperty.asString());addBtn.disableProperty().bind(integerProperty.greaterThanOrEqualTo(100));subBtn.disableProperty().bind(integerProperty.lessThanOrEqualTo(0));integerProperty.addListener((observableValue, number, t1) -> {arc.setStartAngle(90);arc.setLength(-t1.intValue() * 3.6);bar.setProgress(t1.intValue() / 100.0);});}@FXMLpublic void sub(ActionEvent actionEvent) {integerProperty.set(integerProperty.get() - 10);}@FXMLpublic void add(ActionEvent actionEvent) {integerProperty.set(integerProperty.get() + 10);}

demo下载

四.Java FX实现MVVM架构

在这里插入图片描述

  • 业务逻辑代码单独抽离抽离出来,
  • view与ViewModel进行数据绑定
  • 控制器调用业务逻辑代码进行相应。
    demo下载

五.多线程

  • Runnable 对象

对于比较耗时的任务,需要使用多线程技术,但对UI控件的修改必须在JavaFX application thread中执行,因此可以使用 Platform.runLater() 推送到JavaFx application thread中执行修改UI控件的任务。

 Runnable task =()-> {try {//TODO: 执行耗时任务的代码Thread.sleep(1000);//Lambda表达式执行的任务,将会被推送到JavaFx application thread中执行//因此,里面可以有直接访问UI控件的代码Platform.runLater(()->{//TODO: 执行修改UI控件的代码});} catch (InterruptedException e) {// TODO Auto-generated catch block} };
  • Task对象(有返回值)里面封装了updateMessage(),updateProgress()修改UI控件的函数。
http://www.yayakq.cn/news/534843/

相关文章:

  • 免费营销型网站建设wordpress foreign trade
  • 网站开发过程文档网站设建设
  • 基金公司网站建设新网站的建设方案
  • 网站登录注册做验证码的目地建设网站需要哪些编程
  • 网站搜索引擎优化怎么做哪个行业最容易做网站
  • 熊岳网站在哪做2008服务器做网站
  • 备案个人可以做视频网站门户网站架构
  • 汕头cms建站青岛互联网企业
  • php做购物网站网站监测浏览器类型
  • 本机可以做网站的服务器网站网页建设一般多少钱
  • 建设网站需要的人才忽略的网站
  • 如何做电商网站源码网站推荐
  • 门户网站制作需要多少钱购买了网站如何使用吗
  • 网站刚通过备案网站建设实训个人总结3000字
  • 免费建站网站自助建站的网站建站重庆it培训机构
  • 网站建设需要学编程么wordpress woo插件使用
  • 宜布网网站谁做的网站首页添加浮动飘窗
  • 淄博网站建设价格陶瓷网站建设中企动力
  • 网站制作三站广州网站建设论坛
  • 网站快照怎么做重庆市建设工程造价信息表
  • 网站建设公司资料大全做盗版系统网站会不会
  • 高明网站设计收费美发网站源码
  • 网站开发 电话做微整的网站
  • 广州做网站的哪家好机关网站建设存在的问题
  • 做网站官网可以去非菲律宾做游戏网站吗
  • 建设一个网站需要什么技术指标怎么卸载windows优化大师
  • 做网站怎么报价公司做网站需要备案吗
  • 虚拟网站php专业型程序开发的步骤是什么
  • 国内专门做情侣的网站商城网站开发建设准备工作
  • 域名抢注网站是怎么wordpress 企业汉化主题