Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在鼠标悬停JavaFX时高亮显示Gridpane单元格_Java_User Interface_Javafx - Fatal编程技术网

在鼠标悬停JavaFX时高亮显示Gridpane单元格

在鼠标悬停JavaFX时高亮显示Gridpane单元格,java,user-interface,javafx,Java,User Interface,Javafx,好的,正如上面所说,我在javafx应用程序中有gridpane,我正在尝试获取它,这样当我将鼠标移到单个单元格上时,鼠标所在的单元格将变为黄色(想想excell之类的东西)。我不知道怎么做,然后在鼠标离开细胞后重置它 officeHoursGridPane.setOnMouseEntered((MouseEvent t) -> { officeHoursGridPane.setStyle("-fx-background- color:#FFFF00;"); });

好的,正如上面所说,我在javafx应用程序中有gridpane,我正在尝试获取它,这样当我将鼠标移到单个单元格上时,鼠标所在的单元格将变为黄色(想想excell之类的东西)。我不知道怎么做,然后在鼠标离开细胞后重置它

  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
监听器.

为什么同一节点上的同一事件有两个完全矛盾的处理程序?你期望它做什么?我建议您阅读一些关于提问的页面,特别是“寻求调试帮助的问题”(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。“事实上,前几天我自己终于找到了这个答案!我现在遇到的问题是让我高亮显示的单元格的列也改变颜色。