在鼠标悬停JavaFX时高亮显示Gridpane单元格
好的,正如上面所说,我在javafx应用程序中有gridpane,我正在尝试获取它,这样当我将鼠标移到单个单元格上时,鼠标所在的单元格将变为黄色(想想excell之类的东西)。我不知道怎么做,然后在鼠标离开细胞后重置它在鼠标悬停JavaFX时高亮显示Gridpane单元格,java,user-interface,javafx,Java,User Interface,Javafx,好的,正如上面所说,我在javafx应用程序中有gridpane,我正在尝试获取它,这样当我将鼠标移到单个单元格上时,鼠标所在的单元格将变为黄色(想想excell之类的东西)。我不知道怎么做,然后在鼠标离开细胞后重置它 officeHoursGridPane.setOnMouseEntered((MouseEvent t) -> { officeHoursGridPane.setStyle("-fx-background- color:#FFFF00;"); });
officeHoursGridPane.setOnMouseEntered((MouseEvent t) -> {
officeHoursGridPane.setStyle("-fx-background- color:#FFFF00;");
});
officeHoursGridPane.setOnMouseEntered((MouseEvent t) -> {
officeHoursGridPane.setStyle("-fx-background-color:#dae7f3;");
});
这就是我现在拥有它的方式,但它只是在鼠标上方改变一种颜色,然后保持该颜色。整个表格也不会更改每个单元格。有人帮忙吗?如果您在网格窗格上设置了样式类:
officeHoursGridPane.getStyleClass().add("office-hours-pane");
然后,您可以使用CSS将样式应用于网格窗格的直接子级,并使用内置的hover
伪类仅在节点悬停时应用它们。将以下内容添加到外部CSS文件:
.office-hours-pane > *:hover {
-fx-background-color: #FFFF00;
}
如果您更喜欢使用监听器(这要复杂得多,而且不是很好的做法,因为您应该将样式分隔成单独的实体,例如CSS),那么您可以在网格窗格的每个子节点(而不是网格窗格本身)上设置
onMouseEntered
和onmouseexted
监听器.为什么同一节点上的同一事件有两个完全矛盾的处理程序?你期望它做什么?我建议您阅读一些关于提问的页面,特别是“寻求调试帮助的问题”(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。“事实上,前几天我自己终于找到了这个答案!我现在遇到的问题是让我高亮显示的单元格的列也改变颜色。