I am trying to implement a search function for a TreeView
in JavaFX. I want to highlight all the matches when the user hits the enter key. So I added a boolean isHighlighted
to my TreeItem
and in my TreeCell
s updateItem
, I check whether the item isHighlighted
and if so I apply a certain CSS. Everything works fine with the items/cells not visible at the moment of the search -- when I scroll to them, they are properly highlighted. The problem is: How can I "repaint" the TreeCells visible at search so that they reflect whether their item isHighlighted
? My Controller does currently not have any reference to the TreeCells
the TreeView
creates.
JavaFX: How to highlight certain Items in a TreeView
3k Views Asked by spilot At
1
There are 1 best solutions below
Related Questions in JAVAFX
- How do you enable transparency on an aframe entity that is composed of an SVG/HTML?
- How to add color to vertex in Json and the load it for Threejs
- A-Frame VR: Image not showing in Chrome
- Is there a better way to create a button in AFrame?
- Stopping AJAX PUT page refresh in A-Frame scene
- How to trigger AFrame animation to specific location from javascript?
- Adding new entities on the fly in AFrame
- Play sound component with animation using A-Frame
- A-Frame Daydream control?
- Why does the A-Sky element show up in Firefox, but not in Chrome (A-Frame)
Related Questions in TREEVIEW
- How do you enable transparency on an aframe entity that is composed of an SVG/HTML?
- How to add color to vertex in Json and the load it for Threejs
- A-Frame VR: Image not showing in Chrome
- Is there a better way to create a button in AFrame?
- Stopping AJAX PUT page refresh in A-Frame scene
- How to trigger AFrame animation to specific location from javascript?
- Adding new entities on the fly in AFrame
- Play sound component with animation using A-Frame
- A-Frame Daydream control?
- Why does the A-Sky element show up in Firefox, but not in Chrome (A-Frame)
Related Questions in REPAINT
- How do you enable transparency on an aframe entity that is composed of an SVG/HTML?
- How to add color to vertex in Json and the load it for Threejs
- A-Frame VR: Image not showing in Chrome
- Is there a better way to create a button in AFrame?
- Stopping AJAX PUT page refresh in A-Frame scene
- How to trigger AFrame animation to specific location from javascript?
- Adding new entities on the fly in AFrame
- Play sound component with animation using A-Frame
- A-Frame Daydream control?
- Why does the A-Sky element show up in Firefox, but not in Chrome (A-Frame)
Related Questions in TREECELL
- How do you enable transparency on an aframe entity that is composed of an SVG/HTML?
- How to add color to vertex in Json and the load it for Threejs
- A-Frame VR: Image not showing in Chrome
- Is there a better way to create a button in AFrame?
- Stopping AJAX PUT page refresh in A-Frame scene
- How to trigger AFrame animation to specific location from javascript?
- Adding new entities on the fly in AFrame
- Play sound component with animation using A-Frame
- A-Frame Daydream control?
- Why does the A-Sky element show up in Firefox, but not in Chrome (A-Frame)
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
This answer is based on this one, but adapted for
TreeView
instead ofTableView
, and updated to use JavaFX 8 functionality (greatly reducing the amount of code required).One strategy for this is to maintain an
ObservableSet
ofTreeItems
that match the search (this is sometimes useful for other functionality you may want anyway). Use a CSSPseudoClass
and an external CSS file to highlight the required cells. You can create aBooleanBinding
in the cell factory that binds to the cell'streeItemProperty
and theObservableSet
, evaluating totrue
if the set contains the cell's current tree item. Then just register a listener with the binding and update the pseudoclass state of the cell when it changes.Here's a SSCCE. It contains a tree whose items are
Integer
-valued. It will update the search when you type in the search box, matching those whose value is a multiple of the value entered.The CSS file tree-highlight-search.css just has to contain a style for the highlighted cells: