好吧,正如上面所说我在我的javafx应用程序中有gridpane并且我试图得到它,以便当我鼠标悬停在单个单元格上时,鼠标结束的单元格会将颜色变为黄色(想想有点好事)。我不知道怎么做,然后在鼠标离开单元格后重置它。
officeHoursGridPane.setOnMouseEntered((MouseEvent t) -> {
officeHoursGridPane.setStyle("-fx-background- color:#FFFF00;");
});
officeHoursGridPane.setOnMouseEntered((MouseEvent t) -> {
officeHoursGridPane.setStyle("-fx-background-color:#dae7f3;");
});
这就是我现在的方式,但它只是改变鼠标上的一种颜色,然后保持这种颜色。整个表格也不会改变每个单元格。有人帮忙吗?
答案 0 :(得分:1)
如果在网格窗格上设置样式类:
officeHoursGridPane.getStyleClass().add("office-hours-pane");
然后您可以使用CSS将样式应用于网格窗格的直接子节点,并使用内置的hover
伪类仅在节点悬停时应用它们。将以下内容添加到外部CSS文件中:
.office-hours-pane > *:hover {
-fx-background-color: #FFFF00;
}
如果您更喜欢使用侦听器(这是非常棘手的,而不是很好的练习,因为您应该将样式分成单独的实体,例如CSS),那么您可以设置onMouseEntered
和onMouseExited
网格窗格的每个子节点上的侦听器(不在网格窗格本身上)。