精华内容
下载资源
问答
  • Javafx Scene Builder使用教程
    千次阅读
    2021-09-07 17:39:09


    前言

    Scene Builder作为一款Java拖拽式页面设计编码工具,具有强大的拖拽设计能力,对于一些入门以及需要快速响应页面编码的情况,该工具的效果绝对令人满意。同时该工具也存在着这类软件的通病,样式都不是怎么好看,自动生成的结构语言不够理想。因此大家不要过于依赖该工具,需要更加清晰理解fxml语言的魅力

    一、使用方式

    1.IDEA插件“Scene Builder”

    首先,idea下载插件javaFx,安装完插件后fxml可以被识别为可识别文件,且支持fxml相关的语义操作。

    在这里插入图片描述

    同时,该插件还支持内嵌Scene Builder,实时查看fxml效果以及通过Scene Builder拖拽式自动生成fxml结构语言。
    此时不能够调用controller控制器,因此只能看到页面布局,功能无效。
    在这里插入图片描述
    左侧“Text”展示fxml文件编辑页面,右侧“Scene Builder”预览页面。
    注意:该插件与idea兼容性存在很大的问题,作者目前发现,在社区版idea中都会是乱码,目前没有找到解决方法。然而在正式版本中该插件的显示正常,无乱码。有解决方法的同学可以留言。目前只能归结于,电脑字体不全、idea字体不全两种情况。

    2.Javafx Scene Builder桌面软件

    第二种方式主要是通过下载avafx Scene Builder2.0安装在本地,通过软件打开fxml文件进行编辑。

    下载地址:https://www.oracle.com/java/technologies/javafxscenebuilder-1x-archive-downloads.html
    在这里插入图片描述大家可以根据系统要求,选择要下载的版本类型。由于该软件的使用基于Java语言,因此优先检查一下本地是否有Java安装环境,然后安装该软件。
    在这里插入图片描述

    二、使用步骤

    1.模块介绍

    主要分为四个区域元素对象选择区(元素库)、预览展示区、控件属性区域、层次结构区。
    在这里插入图片描述
    元素库主要包含:容器、控件、菜单、混合组合、图形形状、图表。在日常使用过程中,容器、控件、菜单就能满足我们绝大部分的需求。其次是图形和图标,然而混合类别使用较少,在一些切换按钮、单选等组合控件中可能会使用到。

    属性区域主要包含三部分:元素属性、元素布局、元素动作。

    层次结构区域能够清晰的展示容器之间的关系,以及容器与控件之间的父子关系。能够让设计者清楚的找到某一控件的位置,以方便修改。

    2.基本操作步骤

    1.根据需求在容器中选择合适的面板,例如:GridPane,鼠标拖拽至预览区域,可以根据需要修改属性,是否显示网格线。

    在这里插入图片描述
    2.在其每个表格中拖拽入相应的控件
    在这里插入图片描述

    3.点击保存,自动生成fxml文件
    在这里插入图片描述

    <?xml version="1.0" encoding="UTF-8"?>
    
    <?import javafx.geometry.*?>
    <?import javafx.scene.control.*?>
    <?import java.lang.*?>
    <?import javafx.scene.layout.*?>
    
    <GridPane alignment="CENTER" gridLinesVisible="true" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="142.0" prefWidth="529.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8">
      <columnConstraints>
        <ColumnConstraints hgrow="SOMETIMES" maxWidth="296.0" minWidth="10.0" prefWidth="57.0" />
        <ColumnConstraints hgrow="SOMETIMES" maxWidth="500.0" minWidth="10.0" prefWidth="468.0" />
      </columnConstraints>
      <rowConstraints>
        <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
        <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
        <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
      </rowConstraints>
       <children>
          <Label text="用户名:" textAlignment="CENTER" />
          <Label text="密    码:" textAlignment="CENTER" GridPane.rowIndex="1" />
          <TextField promptText="请输入您的姓名" GridPane.columnIndex="1" />
          <PasswordField promptText="请输入您的密码" GridPane.columnIndex="1" GridPane.rowIndex="1" />
          <Button mnemonicParsing="false" text="清除" GridPane.columnIndex="1" GridPane.rowIndex="2" />
          <Button contentDisplay="CENTER" mnemonicParsing="false" text="登录" textOverrun="CLIP" GridPane.columnIndex="1" GridPane.rowIndex="2">
             <GridPane.margin>
                <Insets left="100.0" right="50.0" />
             </GridPane.margin>
          </Button>
       </children>
    </GridPane>
    
    

    4.在软件中属性约束比较多,因此更多的属性可以直接在fxm文件中添加修改


    总结

    工具的使用比较简单,完成较为简单测试工具b比较轻松,但是如果要设计比较复杂且美观性这比较高的要求时,使用拖拽不能完美呈现效果,还得依赖css的支持。工具也只能完成基本控件层次结构的搭建。

    更多相关内容
  • 全网唯一使用( Scene Builder 设计 UI)的JavaFX 8 教程,非常实用的一个教程案例,比那个《翻译官方文档》的教程要系统(那个文档我也有),基本根据教程练一边就基本会JavaFX开发了!
  • 13. JavaFX Scene Builder- Getting Started with JavaFX Scene Builder.pdf
  • TreeTableView(FX8) TreeView WebView 组件预览 下面只是简述该控件在Scene Builder中的使用,不涉及该控件的属性、布局、事件方法,也不涉及JavaFX的代码。 常用的控件有如下这些: 个常用控件的介绍如下: ...

    目录

    组件预览

    Button

    CheckBox

    ChoiceBox

    ColorPicker

    ComboBox

    DatePicker(FX8)

    HTMLEditor

    ImageView

    Label

    ListView

    MediaView

    Pagination

    PasswordField

    ProgressBar

    ProgressIndicator

    RadioButton

    ScrollBar(horizontal)

    ScrollBar(vertical)

    Separator(horizontal)

    Separator(vertical)

    Slider(horizontal)

    Slider(vertical)

    SplitMenuButton

    TableColumn

    TableView

    TextArea

    TextField

    ToggleButton

    TreeTableColumn(FX8)

    TreeTableView(FX8)

    TreeView

    WebView


    组件预览

    下面只是简述该控件在Scene Builder中的使用,不涉及该控件的属性、布局、事件方法,也不涉及JavaFX的代码。

    常用的控件有如下这些:

    个常用控件的介绍如下:

    • Button:按钮控件,一般主要是点击触发事件。

    • CheckBox:复选框控件。

    • ChoiceBox:选择控件,利用勾来选择

    • ColorPicker:颜色选择器控件,可以选择颜色。

    • ComboBox:下拉列表框控件。

    • DatePicker(FX8):日期选择器控件。

    • HTMLEditor:富文本编辑控件。

    • Hyperlink:超链接控件。

    • ImageView:图片显示控件。

    • Label:标签控件。

    • ListView:列表视图控件。

    • MediaView:音视频播放控件。

    • MenuBar:菜单条。

    • MenuButton:菜单按钮。

    • PasswrodFiled:密码输入框。

    • ProgressBar:进度条。

    • ProgressIndicator:圆形进度条。

    • RadioButton:单选按钮。

    • ScrollBar(horizontal):水平滚动条。

    • ScrollBar(vertical):垂直滚动条。

    • Separator(horizontal):水平分隔条。

    • Separator(vertical):垂直分隔条。

    • Slider(horizontal):水平滑动条。

    • Slider(vertical):垂直滑动条。

    • SplitMenuButton:分割菜单按钮控件。

    • TableColumn:表格列控件,与TableView控件一起使用。

    • TableView:表格视图控件,使用表格来显示数据,TableColumn添加表格列。

    • TextArea:文本域控件,能输入多行文本。

    • TextField:输入文本框控件,只能输入单行文本。

    • ToggleButton:状态改变按钮。

    • TreeTableColumn(FX8):树表格列控件,与TreeTableView一起使用。

    • TreeTableView(FX8):树表格视图控件。

    • TreeView:树视图控件,可以选择不同的树形节点。

    • WebView:可以加载显示本地html文件的控件。

    Button

    Button控件是按钮,一般用于点击。

    动图演示:

     

     

    CheckBox

    复选框控件,可以进行勾选来选择选项,最重要的是可以多选复选框。

    动图演示:

     

    ChoiceBox

    选择盒子,和ComboBox控件有些类似,不过Choice是选择列表项时是勾,而ComboBox选择选项是被选中项背景色变化。

    动图演示:

     

    ChoiceBox和ComboBox的区别:

     

    ColorPicker

    颜色选择器,用来选择颜色。

    动图演示:

     

    ComboBox

    下拉列表框控件,用户可以选择不同的项。

     其中Prompt Text表示提示信息。Editable表示是否允许该ComboBox控件可编辑选项。

    DatePicker(FX8)

    日期选择器,用户可以选择日期,而不是通过文本框输入日期。

    HTMLEditor

    富文本框编辑控件,可用来编辑富文本。

    动图演示:

     

    表示超链接控件。

    ImageView

    图片控件,用来显示图片的。

    动图演示:

     

    Label

    标签控件,一般用来显示文本。

    ListView

    列表视图控件,通过一个列表来显示数据选项,并且高度和宽度是可滚动的。

    动图演示:

     

    MediaView

    用来播放音频和视频的控件,需要结合JavaFX的代码来加载音视频。

    菜单条控件。

    该控件由多个控件复合而成,Menu表示菜单条上的菜单控件,可以任意添加,而MenuItem表示Menu菜单控件下的菜单项控件,也可以任意添加,通过点击事件来进行触发,并且可以为其设置快捷键。

    动图演示:

     

    菜单按钮控件。

    动图演示:

     

    Pagination

    分页控件,可以分页显示数据。

     其中有些配置如下:

    PasswordField

    密码输入框控件,用户输入的数据被黑色小点所替换。

    动图演示:

     

    ProgressBar

    进度条控件。

    动图演示:

     

    ProgressIndicator

    圆形进度条。

    动图演示:

     

    RadioButton

    单选按钮控件。

     必须设置Toggle Group属性为同一个值才能使得单选按钮只被选中一个。

    ScrollBar(horizontal)

    水平滚动条。

    ScrollBar(vertical)

    垂直滚动条。

    Separator(horizontal)

    水平分隔条。

    常用来分隔开不同的控件或容器。

    Separator(vertical)

    垂直分隔条。

    Slider(horizontal)

    水平滑动条。

    可以水平方向滑动值。

    动图演示:

     

    Slider(vertical)

    垂直滑动条,可以在垂直方向滑动取值。

    SplitMenuButton

    分割菜单按钮控件。

    该控件和MenuButton有所区别。

    TableColumn

    表格列控件,需要与表格控件TableView一起使用。

    TableView

    表格视图控件,通过表格的方式来显示数据。

    可以通过添加TableColumn控件来为表格增加列。

    动图演示:

     

    TextArea

    文本域控件,可以输入多行文本。

    动图演示:

     

    TextField

    文本输入控件,只能输入单行文本。

    ToggleButton

    状态开关按钮。

    TreeTableColumn(FX8)

    树表格列控件。

    需要同TreeTableView控件一起使用。

    TreeTableView(FX8)

    树表格视图控件,里面的内容呈树形显示。

    动图演示:

     

    TreeView

    树视图控件,可通过选择不同的树节点来操作。

    动图演示:

     

    WebView

    该控件可以嵌入本地的html文件,需要配合JavaFX代码来使用。

    可搜索微信公众号【Java实例程序】或者扫描下方二维码关注公众号获取更多。

    展开全文
  • 双击下载好的 javafx_scenebuilder-2_0-windows.msi,文件进行安装。安装的路径随意选择,我的建议是安装在 Eclipse 的文件夹根目录下,因为这 Scene Builder 是 Elipse 的扩展工具,方便IDE使用者查找和管理。  ...

    JavaFX概述和简介

    富互联网应用是那些提供与Web应用程序类似的功能,并可作为桌面应用程序体验的应用。与用户的正常网络应用程序相比,它们提供更好的视觉体验。这些应用程序可作为浏览器插件或作为虚拟机提供,用于将传统静态应用程序转换为更加增强,流畅,动画和引人入胜的应用程序。

    与传统的桌面应用程序不同,RIA不需要任何额外的软件来运行。作为替代需要安装一些软件,如:ActiveXJavaFlash,这取决于应用程序使用的组件。

    在RIA中,图形表示在客户端处理,因为它有一个丰富的图形提供支持的插件。 简而言之,RIA中的数据操作在服务器端执行,而相关对象操纵在客户端端执行。

    有三个主要技术可使用于开发丰富的互联网应用程序(RIA Rich Internet Applications)。三个主要技术如下:

    • Adobe Flash
    • Microsoft Silverlight
    • JavaFX

    Adobe Flash

    这个软件平台由Adobe Systems开发,用于创建富互联网应用程序。 除此之外,还可以构建其他应用程序,如矢量,动画,浏览器游戏,桌面应用程序,移动应用程序和游戏等。

    这是开发和执行RIA的最常用平台,桌面浏览器渗透率为96%

    Microsoft Silverlight

    像Adobe Flash一样,Microsoft Silverlight也是用于开发和执行富互联网应用程序的软件应用程序框架。最初,这个框架用于流媒体。当前版本还支持多媒体,图形和动画。
    这个平台较少使用,用于桌面浏览器渗透率66%

    JavaFX

    JavaFX是一个Java库,可以使用它开发富互联网应用程序。通过使用Java技术,这些应用程序的浏览器渗透率为76%

    JavaFX是什么?

    JavaFX是用于构建富互联网应用程序的Java库。 使用此库编写的应用程序可以跨多个平台一致运行。使用JavaFX开发的应用程序可以在各种设备上运行,如台式计算机,手机,电视,平板电脑等。

    要使用Java编程语言开发GUI应用程序,程序员依赖于诸如高级窗口工具包(AWT)和Swings之类的库。在JavaFX出现之后,这些Java程序开发就可以有效地利用丰富的类库来开发GUI应用程序。

    为什么需要JavaFX

    要开发具有丰富特性的客户端应用程序,程序员过去依赖于各种库来添加诸如媒体,UI控件,Web,2D和3D等功能。JavaFX将所有这些功能包括在单个库中。除了这些,开发人员还可以访问Java库的现有功能,如:Swings。

    JavaFX提供了一组丰富的图形和媒体API,并通过硬件加速图形利用现代图形处理单元。JavaFX还提供了接口,开发人员可以使用它们组合图形动画和UI控件。

    可以使用JavaFX和基于JVM的技术,如Java,Groovy和JRuby。 如果开发人员选择JavaFX,没有必要学习额外的技术,因为任何上述技术的先前知识将足以开发使用JavaFX的RIA。

    JavaFX的特性

    以下是JavaFX的一些重要功能 -

    • 使用Java语言编写- JavaFX库都是用Java编写的,可用于在JVM上执行的语言,包括Java,Groovy和JRuby。这些JavaFX应用程序也是平台无关的。
    • FXML - JavaFX采用称为FXML的语言,这是一种类似声明式标记语言的HTML。这种语言的唯一目的是定义用户界面。

    • Scene Builder - JavaFX提供了一个名为Scene Builder(场景生成器)的应用程序。 在将此应用程序集成到IDE(如Eclipse和NetBeans)中时,用户可以访问拖放设计界面,用于开发FXML应用程序(就像Swing Drag&Drop和DreamWeaver应用程序一样)。

    • Swing互操作性 - 在JavaFX应用程序中,可以使用Swing Node类嵌入Swing内容。 同样,可以使用JavaFX功能(如嵌入式Web内容和丰富的图形媒体)更新现有的Swing应用程序。

    • 内置UI控件 - JavaFX库UI控件使用它可以开发一个全功能的应用程序。

    • 类似CSS的样式 - JavaFX提供像样式的CSS。 通过使用它,可以使用CSS的简单知识改进应用程序的设计。

    • 画布和打印API - JavaFX提供了Canvas,即时模式样式的渲染API。 在包javafx.scene.canvas中,它包含一组用于canvas的类,可以使用它们直接在JavaFX场景的一个区域内绘制。JavaFX还在javafx.print包中提供用于打印目的的类。

    • 丰富的API集合 - JavaFX库提供了一组丰富的API来开发GUI应用程序,2D和3D图形等。这套API还包括Java平台的功能。因此,使用此API,可以访问Java语言的功能,如通用,注释,多线程和Lambda表达式。传统的Java集合库已增强,包括可观察列表和映射等概念。使用这些,用户可以观察数据模型中的更改。

    • 集成图形库 - JavaFX为2D和3D图形提供类。

    • 图形管道 - JavaFX支持基于硬件加速图形管道(称为Prism)的图形。 当与支持的图形卡或GPU一起使用时,它提供平滑的图形。 如果系统不支持图形卡,则棱镜默认为软件渲染堆栈。

    JavaFX历史

    JavaFX最初由Chris Oliver开发,当时他正在为一家名为See Beyond Technology Corporation的公司工作,在2005年,这个公司被Sun Microsystems收购了。

    这个项目的更多信息,有以下几点 -

    • 最初,这个项目被命名为F3(表单跟随函数),它的开发旨在为开发GUI应用程序提供更丰富的界面。

    • Sun Microsystems于2005年6月收购了See Beyond公司,将F3项目改造为JavaFX

    • 在2007年,JavaFX正式在Java One会议上宣布,这是一个年度举行的世界网络会议。

    • 在2008年,JavaFX与Net Beans集成。同年,JavaFX 1.0的Java标准开发工具包发布。

    • 在2009年,Oracle公司收购了Sun Microsystems,并在同一年发布了下一个版本的JavaFX(1.2)。

    • 在2010年,JavaFX 1.3开发完成并发布,并在2011年JavaFX 2.0发布。

    • 最新版本JavaFX8,在2014年3月18日作为Java的一个组成部分一起发布。

     
    上文出自【易百教程】 原文链接: https://www.yiibai.com/javafx/javafx_overview.html

     

     SenceBuilder工具介绍、安装教程

    1. JavaFX Scene Builder是什么?

    JavaFX Scene Builder是一种可视布局工具,允许用户快速设计JavaFX应用程序用户界面,而无需编码。用户可以将UI组件拖放到工作区,修改其属性,应用样式表,并且它们正在创建的布局的FXML代码将在后台自动生成。它的结果是一个FXML文件,然后可以通过绑定到应用程序的逻辑与Java项目组合。

    JavaFX Scene Builder 2.0的开发界面如下所示 :

     

    JavaFX Scene Builder可以集成到IDE(如EclipseNetbean)中。在这篇文章中,将指导您安装JavaFX Scene Builder并将其集成到Eclipse中,扩展IDE功能

    2. 安装必须条件

    在上文JavaFX历史中我们介绍到,现在JavaFX 最新版本是JavaFX8版本,JDK8中对JavaFX做了重大升级(JavaFX8),新增了一些界面元素,默认使用了一个新的界面风格,一些API变化(尤其是底层非公开接口部分),同时也引起了一些CSS Class层次的变化,这导致原来在JDK7下写的JavaFX2程序在升级到JDK8之后,效果一塌糊涂,没有严格遵循FX单线程的地方甚至无法运行。也就是说,最新版本JavaFX程序,并不支持和兼容JDK7及以下版本的JDK

     

    因此,首先确保自己的JDK版本在JDK8及以上的版本。那么在Eclipse当中如何查看自己的JDK或者JRE版本呢?(关于JDK和JRE的区别,可参考这篇文章: https://www.cnblogs.com/lsw9/p/8685623.html )

    Eclipse中依次点击 Window--> Preferences--> Java--> Complier

     

     

     

     

    如图,右边红色方框里面内容就是你当前所使用的JDK的版本,如果低于JDK8,请去升级更新JDK版本。

     

    要将Scene Builder嵌入到Eclipse中,

    其次需要安装e(fx)clipse,这是JavaFX编程所需一组工具(库)。需要安装它作为eclipse插件

    如果还没有安装e(fx)clipse,那么可通过下面的安装e(fx)clipseEclipse的指南:

    3. 下载JavaFX Scene Builder

    下载JavaFX Scene Builder 2.0 最新版本很简单,访问以下网址下载即可:

     

     

    笔者是用的OS是 Winidows x64系统,读者根据自己OS来选择对应的安装文件。

     

    补充说一点,国内某多广告会员博客站点有中文版的Scene Builder工具,个人觉得比官方的英文版工具容易使用。

     

    4. 安装JavaFX Scene Builder

    双击下载好的 javafx_scenebuilder-2_0-windows.msi,文件进行安装。安装的路径随意选择,我的建议是安装在Eclipse的文件夹根目录下,因为这Scene BuilderElipse的扩展工具,方便IDE使用者查找和管理。

     

    5.设置Eclipse 启动 JavaFX SenceBuilder 可执行程序的路径

    Eclipse中依次点击 Window--> Preferences--> JavaFX --> Browser


     

     根据自己安装Scene Builder的文件路径 选择 JavaFX Scene Builder 2.0.exe 文件,然后Apply and Close。 这样就可以在Eclipse当中使用Scene Builder可视化开发工具了。
     

    Scene Builder 简易使用教程

    这一部分,笔者就和大家如何简单使用Scene Builder来快速开发图形程序,参照QQ邮箱网页版登录,来开发一个简单的登录页面的图形UI程序

     

    新建一个JavaFX Project,打开Ecipse 依次点击 File--> New--> Project--> JavaFX --> JavaFX Project

     

     点击Next>   然后在新弹出窗口里输入JavaFX Project名, 这里新建一个 项目名为 QQloginUI 的JavaFX Project

     

     

     

     Eclipse会自动生成如下所示的项目文件夹

     

    右键application --> New --> Other

     

    找到JavaFX,双击

     

     

    FXML文件根据自己的习惯命名,我建立一个名为config的FXML文件,点击Finish完成。

     

    接着,右键QQloginUI项目中application包下config.fxml文件,选择Open with SceneBuilder。(如果还没有配置Eclipse打开Scene Builder可执行程序路径,参照上面Scene Builder安装集成教程)

     

     打开Scene Builder 2.0图形开发工具 页面如下

     

     把默认的AnchorPane删除,然后依次拖入Pane  Label  Line  TextField  CheckBox Button Label

     

    #标签Label 微信登录# 笔者是这样设置#Properties 属性

     

    #标签Label 微信登录# 的淡蓝色背景是这样设置  Properties--> JavaFX CSS--> Style--> -fx-background-color   #dbf9fb

    CSS的样式: -fx-background-color    颜色值:#dbf9fb

    当然CSS的样式可以采用更加复杂更加美观的样式,请大家自行选择尝试。标签Lable QQ登录 属性设置同上操作。

     

    #文本框TextField 账号输入框# 笔者是这样设置#Properties 属性

    #文本框TextField 密码输入框# 同样设置

     

     #按钮Button 登录按钮# 笔者是这样设置 Properties 属性

     

     #按钮Button 登录按钮# 的深蓝色背景是这样设置 Properties--> JavaFX CSS--> Style--> -fx-background-color    #2648f4

    CSS的样式: -fx-background-color    颜色值: #2648f4

     

    #标签Label 扫码快速登录登录#,#标签Label 忘了密码?# 笔者如下图设置字体颜色值: #50cefc

     

    按快捷键 Ctrl + S  将Sence Builder工具内设计的图形界面保存到我们QQLoginUI项目 application包下 config.fxml文件中,可以看到config.fxml文件中代码增加,这是Scene Builder帮我们自动生成的代码。在Scene Builder中可以点击 Preview--> Show Preview in Window 护着使用快捷键Ctrl + P可以预览开发的图形外观。

     

    如下图所示:

     

    用户登录设计界面已完成,Scene Builder可以关闭。我们回到Eclipse中编译运行QQLoginUI项目 application包下 Main.java代码

    会发现,登录界面呢?怎么图形程序显示一片空白?

     

    分析产生问题的原因:QQLoginUI项目 application包下 Main.java代码中的面板容器并没有关联到我们开发的图形程序

    解决方法:如下如所示

     

     

    然后在Eclipse中运行程序,结果如下图所示,大功告成。

     

     简易使用Scene Builder开发UI图形程序的教程笔者就介绍到这里。

     

    转载于:https://www.cnblogs.com/Lints/p/10612693.html

    展开全文
  • 【JavaFx教程】第一部分:Scene Builder

    万次阅读 多人点赞 2018-09-27 16:40:57
    使用 Scene Builder 来设计用户界面。 使用 模型 - 视图 - 控制器(MVC)模式 构造基础的应用。 你需要准备 最新的 Java JDK 8 (包含 JavaFX 8)。 Eclipse 4.3 或更高版本与 e(fx)clipse 插件。最简单的...

    Screenshot AddressApp Part 1

    第一部分的主题

    • 开始了解 JavaFX 。
    • 创建并运行一个 JavaFX 项目。
    • 使用 Scene Builder 来设计用户界面。
    • 使用 模型 - 视图 - 控制器(MVC)模式 构造基础的应用。

    你需要准备

    • 最新的 Java JDK 8 (包含 JavaFX 8)。
    • Eclipse 4.3 或更高版本与 e(fx)clipse 插件。最简单的方法是从 e(fx)clipse 网站 下载预先配置的发行版本。作为一种备选你可以使用一个 update site 来给您的 Eclipse 安装。
    • Scene Builder 2.0 或更高。

    Eclipse 配置

    配置Eclipse 所使用 JDK 和 Scene Builder:

    1. 打开 Eclipse 的设置并找到 Java | Installed JREs 。

    2. 点击 Add…, 选择 Standard VM 并选择你安装 JDK 8 的 Directory 。

    3. 移除其他的 JREs 或 JDKs 从而使 JDK 8 成为默认。 Preferences JDK

    4. 在 Java | Compiler 中设置 Compiler compliance level 到 1.8。 Preferences Compliance

    5. 在 JavaFX 中指定你的 Scene Builder 可执行文件的路径。 Preferences JavaFX

    帮助链接

    你可能会想收藏下面的链接:

    一切就绪,让我们开始吧!


    创建一个新的 JavaFX 项目

    在 Eclipse(已安装 e(fx)clipse 的)中,点击 File | New | Other… 并选择 *JavaFX Project*。 指定这个项目的名字(e.g. *AddressApp*)并点击 *Finish*。

    如果 application 包被自动创建,那么删除它和它的内容。

    创建包

    Model-View-Controller (MVC)是一个非常重要的软件设计原则。按照MVC模式可以将我们的应用程序划分成3个部分,然后为这每一部分建立自己的包 (在源代码文件夹上右键, 选择 新建 | 包):

    • ch.makery.address - 放置所有的控制器类(也就是应用程序的业务逻辑)
    • ch.makery.address.model - 放置所有的模型类
    • ch.makery.address.view - 放置所有界面和控件类

    注意: view包里可能会包含一些控制器类,它可以直接被单个的view引用,我们叫它 视图-控制器


    创建FXML布局文件

    有两种方式来创建用户界面,一种是通过XML文件来定义,另外一种则是直接通过java代码来创建. 这两种方式你都可以在网上搜到. 我们这里将使用XML的方式来创建大部分的界面。因为这种方式将会更好的将你的业务逻辑和你的界面开来,以保持代码的简洁。在接下来的内容里,我们将会介绍使用Scene Builder(所见即所得)来编辑我们的XML布局文件,它可以避免我们直接去修改XML文件。

    在view包上右键创建一个新*FXML Document*,把它命名为PersonOverview

    New FXML Document

    New PersonOverview


    用Scene Builder来设计你的界面

    注意: 你可以下载这部分教程的源码,它里面已经包含了设计好的布局文件。

    PersonOverview.fxml 右键选择 *Open with Scene Builder*,那么你将会在打开的Scene Builder里面看到一个固定的界面设计区域(在整个界面的左边)。

    1. 选中这个界面设计区域,你就可以在右边的属性设置栏中对它的尺寸进行修改:
      Anchor Pane Size

    2. 从Scene Builder的左边控件栏中拖拽一个 Splite Pane(Horizontal Flow) 到界面设计区域,在Builder的右边视图结构中选择刚添加的Pane,在弹出的右键菜单中选择 Fit to Parent 。
      Fit to Parent

    3. 同样从左边的控件栏中拖拽一个 TableView 到 SplitPane 的左边,选择这个TableView(而不是它的列)对它的布局进行设置,你可以在 AnchorPane 中对这个TableView四个边的外边距进行调节。(more information on Layouts).
      TableView Anchors

    4. 点击菜单中的 Preview | Show Preview in Window 可以预览你设计好的界面,试着缩放预览的界面,你会发现TableView会随着窗口的缩放而变化。

    5. 修改TableView中的列名字,”First Name” and “Last Name”,在右边面板中的属性设置项
      Column Texts

    6. 选择这个 TableView ,在右边面板中将它的 Column Resize Policy 修改成 constrained-resize (同样是在属性设置项里面)。确保这个TableView的列能够铺满所有的可用空间。
      Column Resize Policy

    7. 添加一个 Label 到 *SplitePane*的右边部分,并设置它的显示文字为 “Person Details” (提示: 你可以通过搜索来找到 Label 这个控件)。 使用anchors来调节这个控件的布局位置。
      Person Details Label

    8. 再添加一个 GridPane *SplitePane*的右边部分, 使用anchors来调节这个控件的布局位置。
      GridPane Layout

    9. 按照下面的图添加多个 *Lables*到表格中去。

    10. 注意: 添加一个控件到已经存在的行里面去,你可在这行的行号上右键选择 “Add Row”。
      Add labels

    11. 添加3个按钮到这个 GridPane 的下面。 小提示: 选择这3个按钮,右键 *Wrap In | HBox*,那么它们会被放置到一个HBox里面。 你可能需要对这个HBox指定一个 spacing,同时也需要设置它们的右边和下边的anchors。
      Button Group

    12. 那么基本已经完成了界面的设计,你可以通过 Preview 来预览一下你设计的界面,同时缩放一下窗口来检验一下各个控件的位置是否正确。
      Preview


    创建主应用程序

    我们还需要新建一个*FXML*文件来做为主布局文件,它将包含菜单栏并存放我们之前创建的布局文件 PersonOverview.fxml 。

    1. 在view包里面创建一个新的 FXML Document 叫做 RootLayout.fxml, 这一次,选择 BorderPane 做为它的根节点
      New RootLayout

    2. 在Scene Builder中打开 RootLayout.fxml

    3. 通过设置 Pref Width 为600和 Pref Height 为400来改变这个 *BorderPane*的尺寸。
      RootLayout Size

    4. 在最顶上添加一个 *MenuBar*,先不去给这个菜单添加任何的功能。
      MenuBar

    The JavaFX Main Class

    现在,我们需要创建一个 main java class 用来加载 RootLayout.fxml ,同时添加 PersonOverview.fxml 到*RootLayout.fxml*中去,这个main class将做为我们这个应用程序的入口。

    1. 在工程上右键选择 *New | Other…*,然后选择 *JavaFX Main Class*。
      New JavaFX Main Class

    2. 将这个class命名为 MainApp,将它放置到controller包中,也就是上面建的 ch.makery.address (注意: 这个包下有两个子包,分别是view 和 model)。
      New JavaFX Main Class

    你可能注意到了IDE生成的 MainApp.java 继承自 Application 同时包含了两个方法, 这是一个JavaFX应用程序的最基本的代码结构,这里最重要的方法是 start(Stage primaryStage) ,它将会在应用程序运行时通过内部的 main 方法自动调用。

    正如你所看到的,这个start(...) 方法会接收一个 Stage 类型的参数,下面的图向你展示了一个JavaFX应用程序的基本结构。

    New FXML Document
    Image Source: http://www.oracle.com

    一切看起来象是剧场里表演: 这里的 Stage 是一个主容器,它就是我们通常所认为的窗口(有边,高和宽,还有关闭按钮)。在这个 Stage 里面,你可以放置一个 Scene,当然你可以切换别的 Scene,而在这个 Scene 里面,我们就可以放置各种各样的控件。

    更详细的信息,你可以参考 Working with the JavaFX Scene Graph.


    打开 MainApp.java,将已有的代码替换成下面的代码:

    package ch.makery.address;
    
    import java.io.IOException;
    
    import javafx.application.Application;
    import javafx.fxml.FXMLLoader;
    import javafx.scene.Scene;
    import javafx.scene.layout.AnchorPane;
    import javafx.scene.layout.BorderPane;
    import javafx.stage.Stage;
    
    public class MainApp extends Application {
    
        private Stage primaryStage;
        private BorderPane rootLayout;
    
        @Override
        public void start(Stage primaryStage) {
            this.primaryStage = primaryStage;
            this.primaryStage.setTitle("AddressApp");
    
            initRootLayout();
    
            showPersonOverview();
        }
        
        /**
         * Initializes the root layout.
         */
        public void initRootLayout() {
            try {
                // Load root layout from fxml file.
                FXMLLoader loader = new FXMLLoader();
                loader.setLocation(MainApp.class.getResource("view/RootLayout.fxml"));
                rootLayout = (BorderPane) loader.load();
                
                // Show the scene containing the root layout.
                Scene scene = new Scene(rootLayout);
                primaryStage.setScene(scene);
                primaryStage.show();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * Shows the person overview inside the root layout.
         */
        public void showPersonOverview() {
            try {
                // Load person overview.
                FXMLLoader loader = new FXMLLoader();
                loader.setLocation(MainApp.class.getResource("view/PersonOverview.fxml"));
                AnchorPane personOverview = (AnchorPane) loader.load();
                
                // Set person overview into the center of root layout.
                rootLayout.setCenter(personOverview);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
        /**
         * Returns the main stage.
         * @return
         */
        public Stage getPrimaryStage() {
            return primaryStage;
        }
    
        public static void main(String[] args) {
            launch(args);
        }
    }
    

    代码中的注释会给你一些小提示,注明代码的含义。

    如果你现在就运行这个程序,那么你将会看到和这篇文章开头所展示的图片那样的界面。

    你有可能遇见的问题

    如果你的应用程序找不到你所指定的 fxml 布局文件,那么系统会提示以下的错误:

    java.lang.IllegalStateException: Location is not set.

    你可以检查一下你的 fxml 文件名是否拼写错误

    欢迎关注公众号:

    展开全文
  • 关于JavaFX的界面设计软件Scene Builder,大家可能对该软件的很多功能不清楚如何使用,下面将一一说明。 界面结构 所谓的菜单项就是Scene Builder软件上的菜单条上各个菜单项的功能: 首先,直接打开S...
  • 目录 组件预览 AreaChart BarChart BubbleChart LineChart PieChart ScatterChart StackedAreaChart StackedBarChart ...图表控件需要使用JavaFX代码填充数据,这里只演示Scene Builder的使用,...
  • JavaFX Scene Builder的使用

    万次阅读 多人点赞 2017-09-30 16:43:07
    Eclipse开发JavaFX项目入门一、下载与安装Eclipse中添加新插件...Location: http://download.eclipse.org/efxclipse/updates-released/2.3.0/site下载JavaFX Scene Builder 2.0 URL:http://www.oracle.com/technetwork
  • 原文网址:https://www.cnblogs.com/Lints/p/10612693.html 下面是我的镜像备份:
  • https://www.oracle.com/java/technologies/javafxscenebuilder-1x-archive-downloads.html 或者 https://gluonhq.com/products/scene-builder/ 文章: IDEA中使用scene builder
  • 教程所用文件版本如下: FX环境: openjfx - 1.0.2_windows-x64_bin-sdk.zip ...官网进不去也可以通过:此网站 JavaFX Scene Builder 2.0(界面生成软件) 官网下载: ...将 JavaFX Scene Builder 2
  • IntelliJ IDEA中配置SceneBuilder

    千次阅读 2019-10-08 17:12:25
    一、什么是SceneBuilder? JavaFX Scene Builder是一种可视布局工具,允许用户快速设计JavaFX应用程序用户界面,而无需编码。用户可以将UI组件拖放到工作区,修改其属性,应用样式表,并且它们正在创建的布局的FXML...
  • 打开IDEA,进入设置,搜索“JavaFX”,配置SceneBuilder安装路径 3、SceneBuilder使用流程 使用SceneBuilder最大的好处是FXML不再需要我们手动敲代码地设计样式,接下来我们按步骤演示一下SceneBuilder的使用流程。...
  • 目录 容器组件预览 Accordion Accordion(empty) AnchorPane BorderPane FlowPane GridPane HBox Pane ScrollPane ScrollPane(empty) SplitPane(empty) SplitPane(horizontal) ......
  • JavaFX Scene Builder 2.0安装和使用

    千次阅读 2020-08-02 18:24:00
    在https://www.oracle.com/java/technologies/javafxscenebuilder-1x-archive-downloads.html下载JavaFX Scene Builder 2.0 双击下载之后的文件 下一步 可以更改安装位置也可以默认位置,然后点安装 完成 创建...
  • 目录 Code窗口预览 Identity面板 Main面板 DragDrop面板 Keyboard... primaryStage.setScene(new Scene(root, 500, 500)); primaryStage.show(); } ​ ​ public static void main(String[] args) { launch(args); } } ...
  • 可以作为插件引入IDEA或者其他IDE中,新建xml文件之后,右键选择使用scene builder打开,可以在左侧工具栏中拖拽组件到主舞台上使用,设置好变量名和方法名,保存后自动生成页面代码,直接复制java代码到java文件中...
  • 网上的教程大多针对的是旧版的Intellij,对于新版的Intellij的教程很少。新版intellij是不兼容JDK8的,而JDK8以上的版本都需要额外下载安装JavaFX,我查询了很多资料,尝试了很多次,最后终于成功运行。
  • JavaFX Scene Builder

    2021-03-22 12:37:46
    官方教程image安装和配置 Scene Builder下载安装甲骨文网站上的 Scene Builder ,最高版本到 2.0,8.5 / 11.0可以在 Gluon 的网站上下载。这里用的是8.0。配置到IDEAimage之后就可以在右键菜单中直接打开imageScene ...
  • 在Eclipse安装JavaFX Scene Builder

    万次阅读 2017-04-25 06:40:49
    1-JavaFX Scene Builder是什么? JavaFX Scene Builder是一种可视布局工具,允许用户快速设计JavaFX应用程序用户界面,而无需编码。用户可以将UI组件拖放到工作区,修改其属性,应用样式表,并
  • JavaFx and SceneBuilder (Mac 版)编程入门---从安装到实现

    千次阅读 热门讨论 2017-12-05 22:52:27
    说在前面首先,说一说我和JavaFx and SceneBuilder的一段缘分。在2016年Java实训的时候,当时刚过完大一,刚学会Java,过完暑假我们就迎来了JavaFx可视化编程实训,当时我们实训老师让我们用JavaFx的可视化编程工具...
  • IDEA安装SceneBuilder,配置JavaFx,运行JavaFx创建项目Scene Builder安装IDEA配置使用JavaFx配置下载并导入配置 参考文章关于idea(eclipse同样适用,都是一样的步骤)无法导入Javafx包的问题及解决方案: 创建项目...
  • 安装JavaFX Scene Builder,并配置到Eclipse 转载自:https://www.yiibai.com/javafx/install-javafx-scene-builder-into-eclipse.html 1-JavaFX Scene Builder是什么? JavaFX Scene Builder是一种...
  • javafx:JavaFX Scene Builder 2.0打开含有第三方jar包的fxml文件报错 Caused by: java.lang.ClassNotFoundException 报错如下: ... 22 more Caused by: java.lang.ClassNotFoundException: de......................
  • 点击下载:... ... 安装很简单,下一步下一步就好 安装位置的话自己定(安装成功后是会有下方的下图标的) ...配置idea(先看下有没有没有的先从marketplace下载) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 952
精华内容 380
关键字:

scenebuilder教程

友情链接: memcpy_mck.rar