JavaFX tableview colors

前端 未结 1 1029
被撕碎了的回忆
被撕碎了的回忆 2020-12-13 11:06

i need create JavaFx TableView with multicolor rows (color1 for low priority, color2 for medium priority etc.). I have created CellFactory

public class TaskC         


        
相关标签:
1条回答
  • 2020-12-13 11:42

    Instead of setting the background color for the entire cell in your css, just set the -fx-control-inner-background. Then you will have the default accent, hover and focus rings still available. Also remove the if statement around your setPriorityStyle call of course.

    If you also want to override things like the default accent (selected) color or the hover color, you can also do this as in the css below - not sure if the highlight overrides are really recommended though, guess it would depend on your app and desired user experience.

    .priorityLow { 
      -fx-control-inner-background: palegreen;
      -fx-accent: derive(-fx-control-inner-background, -40%);
      -fx-cell-hover-color: derive(-fx-control-inner-background, -20%);
    }
    
    .priorityMedium { 
      -fx-control-inner-background: skyblue;
      -fx-accent: derive(-fx-control-inner-background, -40%);
      -fx-cell-hover-color: derive(-fx-control-inner-background, -20%);
    }
    
    .priorityHigh { 
      -fx-control-inner-background: palevioletred;
      -fx-accent: derive(-fx-control-inner-background, -40%);
      -fx-cell-hover-color: derive(-fx-control-inner-background, -20%);
    }
    

    rowhighlight


    Detailed styling information for JavaFX can be found in the default caspian.css stylesheet for JavaFX 2.2 and the JavaFX 2 CSS reference guide. To find caspian.css for your version of JavaFX you can unjar jfxrt.jar (sometimes found in the jre/lib directory).

    Update

    The default stylesheet for JavaFX is now named modena.css rather than caspian.css.

    0 讨论(0)
提交回复
热议问题