【问题标题】:CSS API (JavaFX 8) - Can somebody explain me something about one topic?CSS API (JavaFX 8) - 有人可以向我解释一个主题吗?
【发布时间】:2014-02-15 21:35:42
【问题描述】:

这是关于

目前我正在研究 JavaFX 8 中存在的新 CSS API,但我无法理解某些内容。

问题

我正在阅读有关 CssMetaData 类的文档,并且在某个时间说以下内容:

调用Node.getCssMetaData()方法获取 列表。此方法调用频繁,谨慎 返回静态列表,而不是在每次调用时创建列表。经过 约定,具有 CssMetaData 的节点类将实现静态 方法 getClassCssMetaData() 并且习惯上具有 getCssMetaData() 只返回 getClassCssMetaData()。的目的 getClassCssMetaData() 是为了让子类轻松包含 某个祖先的 CssMetaData。

在 Node 类中,我们可以找到 getCssMetaData 方法。据我了解,从 JavaFX 版本 8 开始,节点现在可以存储 CssMetaData 对象列表,这些对象将 CSS 属性与节点的每个属性(如果需要)连接起来。例如,Rectangle 类可以在该列表中插入它自己的 CssMetaData 实例,也可以通过 Shape CssMetaData 实例和 Node.js 输入。最后,CSS JavaFX 引擎会读取这个列表,将 CSS 属性的值转换为 JavaFX bean 的属性值,从而设置类的属性值(如果他们做过这样的属性配置)。

文档的含义是什么,为什么?在 CssMetaData 文档中有一个如何完成的示例。在 sn-p 中,会出现以下内容:

private static final List <CssMetaData <? extends Node, ? > > cssMetaDataList;

static 
{
     List <CssMetaData <? extends Node, ? > > temp =
         new ArrayList <CssMetaData <? extends Node, ? > >(Control.getClassCssMetaData());
     temp.add(GAP_META_DATA);

     cssMetaDataList = Collections.unmodifiableList(temp);
 }

 public static List <CssMetaData <? extends Node, ? > > getClassCssMetaData() 
 {
     return cssMetaDataList;
 }

 @Override public List <CssMetaData <? extends Node, ? > > getCssMetaData() 
 {
     return getClassCssMetaData();
 }

据我了解,这种代码应该放在将 JavaFX bean 属性连接到 CSS 属性的类中。出于什么原因,我必须再次在我的班级中创建 CssMetaData 列表? Node 类还没有? getCssMetaData 方法不是抽象的,这使得 Node 似乎实现了自己的列表,这(再次)导致客户端程序员考虑使用这样的列表而无需这样做。 Node 类甚至有 getCssMetaData 方法。 :s

谁能用一种简单明了的方式为我澄清这一点(即使你必须多写一点)?或者在 JavaFX API 8 和 this link 之外还有其他地方吗(顺便说一下,我从来没有见过像 here 这样解释得这么糟糕的东西。抱歉)这样我就可以了解更多关于新的 JavaFX CSS API 8 的信息?

OBS:我想将我提到的每个课程的链接放在这里。但是,今天(GMT - 3 ---- 15:59 pm)JavaFX 8 文档处于脱机状态。对不起。

感谢您的关注。

【问题讨论】:

    标签: java css api javafx java-8


    【解决方案1】:

    也许这个演示会有所帮助:https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=2935&tclass=popup

    在右侧以 PDF 格式下载幻灯片。

    【讨论】:

    • 谢谢。我会看看你发给我的链接。
    • 很抱歉,我在您发送给我的链接上找不到任何帮助。我在bit.ly/jfxcss 上下载了演示示例,并以 PDF 格式阅读了整个演示文稿。 PDF 演示文稿以非常肤浅的方式讲述了我们如何在演示示例中创建风格化的属性。我敢打赌,会议发言人应该提供更多关于它的细节。正如我已经解释的那样,可以在here 找到这种指南(当然,以一种不那么说教的方式)。我应该看到更多的东西吗?
    • N也许你可以更详细地解释你的问题
    【解决方案2】:

    我真的迟到了,但原因是,在示例中,一个元素被添加到列表中。假设该方法被频繁调用,最好将生成的 List 缓存在 Class 中,避免每次调用额外的add 操作。

    【讨论】:

      猜你喜欢
      • 2014-04-20
      • 2011-04-24
      • 1970-01-01
      • 2011-05-08
      • 2023-04-08
      • 1970-01-01
      • 2019-11-28
      • 2011-07-14
      • 2014-10-13
      相关资源
      最近更新 更多