首页 > 解决方案 > OpenJFX TreeTableView 渲染问题

问题描述

我希望有其他开发人员有类似的问题,可以分享如何解决这个问题。我正在我的一个宠物项目中使用 OpenJFX。该项目在包含 JFX 包的 Oracle JDK 1.8 上进行了测试。在 Oracle 1.8 JDK 上运行时,TreeTableView 完全按照要求显示:

在此处输入图像描述

由于我的其他工作站需要 Java 11,因此下载并安装了此处的 OpenJFX 二进制文件。但是 TreeTableView 变得不可读,如下所示:

在此处输入图像描述

有没有类似经历的 JFX 开发者?

仅供参考,我已经使用 OpenJFX 版本 11.0.2、15.0.1 和 16 进行了测试,它们都给出了相同的输出。

编辑:似乎从源代码行为是从源代码编译产生相同的结果。

更新:我应该添加我的宠物项目正在使用 JRuby 和 JRubyFX。虽然不确定我不认为它与 JRubyFX 有关,因为 Oracle FX 似乎很好。

谢谢!

问候

标签: jrubyopenjfxtreetableviewjrubyfx

解决方案


从您的存储库中,您有:

class WorkspaceCellFactory < javafx.scene.control.TreeTableCell
  include Antrapol::ToolRack::ExceptionUtils
  def updateItem(itm,e)
    super

    cont = nil
    if not itm.nil? 
      if itm.is_a?(TreeWorkspace) 
        if not_empty?(itm.workspace)
          cont = itm.workspace.path
        elsif not_empty?(itm.project)
          cont = itm.project
        else
          cont = itm
        end
      else
        cont = itm
      end
    end

    setGraphic(Text.new(cont))

  end
end

您正在将graphic属性设置为javafx.scene.text.Text节点。过去,我相信我在使用带有TreeView/的图形时遇到过类似的问题TreeTableView。您已确认替换:

setGraphic(Text.new(cont))

和:

setText(cont)

解决问题。


JavaFX 中的错误

这似乎是 JavaFX 中的一个错误。请提交一份错误报告,假设该报告尚不存在,以便开发人员知道存在问题并可以修复它。错误报告应包含一个用 Java 编写的最小可重现示例。


推荐阅读