chapter5 making scenes
URI和URL 的区别
1、含义不同
URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。
URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。
2、格式不同
URL的格式一般由下列三部分组成:第一部分是协议(或称为服务方式);第二部分是存有该资源的主机IP地址(有时也包括端口号);第三部分是主机资源的具体地址。
URI一般由三部分组成:访问资源的命名机制;存放资源的主机名;资源自身的名称,由路径表示。
3、位置不同
绝对URL(absolute URL)显示文件的完整路径,这意味着绝对URL本身所在的位置与被引用的实际文件的位置无关。
绝对的URI指以scheme(后面跟着冒号)开头的URI,你可以把绝对的URI看作是以某种方式引用某种资源,而这种方式对标识符出现的环境没有依赖。如果使用文件系统作类比,绝对的URI类似于从根目录开始的某个文件的径。
3、URN
URN(统一资源名称) 是另一个与URI相关的概念,它通过资源的名称来标识资源,而不是通过位置。URN在资源位置变动时保持不变,因为它与资源的位置无关。
总结
场景代表舞台的视觉内容。javafx中的Scene类。scene包表示JavaFX程序中的场景。一个场景对象一次最多只能附着在一个阶段上。如果一个已经附加的场景附加到另一个阶段,它首先从前一个阶段分离。一个舞台在任何时候最多只能附带一个场景。
场景包含由可视节点组成的场景图。从这个意义上说,场景充当了场景图的容器。场景图是一种树状数据结构,其元素称为节点。场景图中的节点形成父子层次关系。场景图中的节点是javafx.scene.Node类的实例。
节点可以是分支节点,也可以是叶节点。分支节点可以有子节点,而叶节点则不能。场景图中的第一个节点称为根节点。根节点可以有子节点;但是,它从来没有父节点。
cursor类的一个实例表示一个鼠标光标。Cursor类包含许多常量,例如标准鼠标游标的HAND、CLOSED_HAND、DEFAULT、TEXT、NONE、WAIT。可以使用scene类的setCursor()方法为场景设置一个光标。
场景中只有一个节点可以是焦点所有者。Scene类的只读focusOwner属性跟踪具有焦点的节点。如果希望场景中的特定节点成为焦点所有者,则需要调用node类的requestFocus()方法。每个场景可能有一个焦点所有者。例如,如果打开两个窗口,将有两个场景,并且可能有两个焦点所有者。但是,一次只有两个焦点所有者中的一个可以拥有焦点。活动窗口的焦点所有者将拥有该焦点。要检查焦点所有者节点是否也有焦点,需要使用node类的focused属性。
javafx中的平台类。应用程序包是一个实用程序类,用于支持与平台相关的功能。它包含用于终止应用程序、检查正在执行的代码是否在JavaFX应用程序线程上执行等等的方法。
javafx中的HostServices类。应用程序包提供与托管JavaFX应用程序的启动环境(本书的桌面)相关的服务。不能直接创建HostServices类的实例。Application类的getHostServices()方法返回一个HostServices类的实例。