jrubyopenjfxtreetableviewjrubyfx

OpenJFX TreeTableView rendering issue


I was hoping there are other developers have similar issue that can share how to resolve this issue. I'm in the midst of using OpenJFX in one of my pet project. The project was tested on Oracle JDK 1.8 with JFX package included. When run on the Oracle 1.8 JDK, the TreeTableView show exactly as required:

enter image description here

Since Java 11 is required in my other workstation, the OpenJFX binary here is downloaded and installed. But the TreeTableView has become unreadable as followed:

enter image description here

Is there any JFX developer that has similar experiences?

FYI, I've tested with OpenJFX release 11.0.2, 15.0.1 and 16 all giving the same output.

Edit: It seems from the source behavior is as such as compile from source yield the same result.

Update: I should add my pet project is using JRuby and JRubyFX. Although not sure I don't think it is related to JRubyFX as the Oracle FX seems fine.

Thanks!

Regards


Solution

  • From your repository you have:

    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
    

    You're setting the graphic property to a javafx.scene.text.Text node. In the past, I believe I've had a similar issue when using graphics with TreeView / TreeTableView. You've confirmed that replacing:

    setGraphic(Text.new(cont))
    

    With:

    setText(cont)
    

    Solves the problem.


    Bug in JavaFX

    This appears to be a bug in JavaFX. Please submit a bug report, assuming one doesn't already exist, so that the developers know there's a problem and can fix it. The bug report should include a minimal reproducible example written in Java.