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 TreeCells 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
- JAVAFX error incompatible types: FXMLLoader cannot be converted to node
- How to resolve browser crash issue in JavaFX?
- JavaFX can't play mp3 files
- JavaFX 8 Load external FXML
- All my JavaFX TextFields have lines in them
- Javafx TableView with custom row color using CSS
- Java for Mobile and Desktop Development
- Create Dialogs with Default Images in JavaFX (Info/Warning/Error)
- In javaFx is it possible to make rounded corner of a Rectangle except right-bottom?
- using javafx 8 (java 8 install) How to extend Label.setTooltip Display time to 20secs (while mouse is inside Tooltip)
- javaFX : How to periodically load information from db and show it on a Label?
- How to enable right click option in JavaFX Pane?
- Using ReactFX to resize stage when nodes become invisible?
- How to change collapse and expand icon for a particular treeview in javafx?
- is it possible to set a javaFX Pane origin to bottom-left?
Related Questions in TREEVIEW
- XML Null Element Visual Basic
- DataTrigger is not working
- How to change collapse and expand icon for a particular treeview in javafx?
- WPF TreeView How to specify Multiple Properties of same type as sources of Child nodes
- TreeNode not selected after leaving textbox with messagebox, C#
- unwanted treeview node duplicating at the end of list
- what is "root:'data' " extjs store config
- Switch User control on Treeview Selection Change
- How to populate a treeview from a XML file with multiple child nodes?
- C# Treeview keys fullpath
- How to recursively get the elements and its children from an XML?
- Write all TreeView nodes to text file
- WPF treeview: "non listed items"
- PropertyChanged always null with TreeView
- How to dynamicaly search for a string in all TreeView nodes expanding and collapsing nodes matching (or not) the search string?
Related Questions in REPAINT
- Java repaint() not calling paintComponent
- Repaint methods are not being called and i get a blank frame as output
- paintComponent method not being called by repaint
- Java repaint updates only part of my Canvas
- Cannot repaint new elements without repainting old ones
- how to avoid Java graphics2D components to erase when minimizing or pooping up of Joptionpane?
- Java Swing - black border when resizing JFrame
- Why isn't this program repainting a certain part of an applet even when repaint() is called
- repaint in java not working
- Why is my JPanel not repainting on my JFrame?
- Unnecessary repaint of following siblings
- Applet AWT Canvas not updating graphics
- webkitTransitionEnd is triggered before repaint/reflow
- Java - Why does it not show an error dialog when the user gives in an unwanted input?
- Java square not moving
Related Questions in TREECELL
- JavaFx TreeCell how to expand nodes after one second
- JavaFX Getting TreeView's prefWidth
- JavaFX: How to highlight certain Items in a TreeView
- JavaFx 8 TreeCell Drag and Drop
- Style TreeItem at the time of creation
- How do i set the grapic for a TextFieldTreeCell
- Change tree-cell selected font color in JavaFX
- JavaFX 8 TreeView displays incorrect String when cell is clicked to edit
- JavaFX TreeView tooltip conflicts with TreeCell tooltip
- Get a list of all TreeCell objects that currently exist in a TreeView
- JavaFX-CSS: How to "move" style of parent to a child?
- TreeCell Line Bindings messing up at scroll
- JavaFX TreeTableView custom TreeCell with controls
- TreeView expanding/collapsing strange behaviour
- JavaFX TreeView adding item to the treeview results the same behavior of the two cells
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 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
TreeViewinstead ofTableView, and updated to use JavaFX 8 functionality (greatly reducing the amount of code required).One strategy for this is to maintain an
ObservableSetofTreeItemsthat match the search (this is sometimes useful for other functionality you may want anyway). Use a CSSPseudoClassand an external CSS file to highlight the required cells. You can create aBooleanBindingin the cell factory that binds to the cell'streeItemPropertyand theObservableSet, evaluating totrueif 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: