好的,所以我尝试在gridpane中垂直列中的任何节点上鼠标时高亮显示该列中的所有节点。现在,我正在获取节点的columnIndex,我的鼠标已结束,然后创建一个共享该列索引的所有节点的数组。将该数组返回到main方法,然后将数组中节点的背景色更改为一种颜色。
这是鼠标覆盖功能:
for (Node node : officeHoursGridPane.getChildren()) {
node.setOnMouseEntered((MouseEvent t) -> {
node.setStyle("-fx-background-color:#f9f3c5;");
Node source = (Node)t.getSource();
Integer colIndex = GridPane.getColumnIndex(source);
Integer rowIndex = GridPane.getRowIndex(source);
//ystem.out.println("Column #: " + colIndex + "\nRow #: " + rowIndex);
for(int c = 0; c <= colIndex; c++){
Node[] colNode = getNodeByColumnIndex(colIndex, officeHoursGridPane);
int colCount=0;
for(int v = 0; v <= colNode.length; v++){
Node vertNode = colNode[v];
vertNode.setStyle("-fx-background-color:#f9f3c5;");
}
}
});
node.setOnMouseExited((MouseEvent t) -> {
node.setStyle("-fx-background-color:#ffffff;");
});
}
这是我的Node[]生成器:
public Node[] getNodeByColumnIndex (final int column, GridPane gridPane) {
Node[] result = null;
ObservableList<Node> childrens = gridPane.getChildren();
int count = 0;
for (Node node : childrens) {
if(GridPane.getColumnIndex(node) == column) {
result[count] = node;
count++;
if(count > column){
break;
}
}
}
return result;
}
您应该在GridPane的子级中找到具有相同列索引的所有节点:
for (Node node : officeHoursGridPane.getChildren()) {
node.setOnMouseEntered(e -> officeHoursGridPane.getChildren().forEach(c -> {
Integer targetIndex = GridPane.getColumnIndex(node);
if (GridPane.getColumnIndex(c) == targetIndex) {
c.setStyle("-fx-background-color:#f9f3c5;");
}
}));
node.setOnMouseExited(e -> officeHoursGridPane.getChildren().forEach(c -> {
Integer targetIndex = GridPane.getColumnIndex(node);
if (GridPane.getColumnIndex(c) == targetIndex) {
c.setStyle("-fx-background-color:#ffffff;");
}
}));
}
注意,为了不突出显示额外的节点,您可能还应该检查行索引。
好吧,如上所述,我在我的javafx应用程序中有网格窗格,并且我试图获取它,以便当我将鼠标悬停在单个单元格上时,鼠标所在的单元格将变为黄色(认为excel有点东西)。我不知道如何做到这一点,然后在鼠标离开手机后重置它。 这就是我现在拥有它的方式,但它只是在鼠标悬停时改变一种颜色,然后保持该颜色。整个表格也不会更改每个单元格。有人帮忙吗?
我想这可能是图像后的行和列的问题,但是我已经尝试了一些方法,但没有成功。非常感谢任何帮助。谢谢
问题内容: 我有此代码从如何突出显示jtable中的多个单元格: 但是,当我用它突出显示一个单元格时,它会执行错误的操作,就像丢失整个数据一样。Iam是Java Swing的新手。请帮助使单元格在按钮按下动作事件中突出显示。 更新:添加我的示例代码: 我想要的是单击按钮,我只想突出显示单元格编号1(Row1-Column1)。 问题答案: 我使用此类来设置JTables的样式 创建此类的实例,并将
谁知道是否可以更改文本突出显示? 当我在“”中编写sql时,突出显示效果很好,但是当我添加带有{}的新3.6语法时,除了python字符串之外的所有突出显示都会消失。 是否可以决定(在行级别应突出显示哪种语言? (我正在运行教授版PyCharm 2017.1.2)
我正在创建一个包含图像和文本的网格视图布局。我想要多选的项目,这是工作正常,但我想突出显示的网格项目,这是选定的。 这是我的代码: 我应该添加什么到突出显示将被选中的网格项目的代码中。 请给我一些建议。提前谢谢。
我正在创建一个应用程序,在一个gridPane的每个单元格内随机显示圆形(不同颜色)。 我想做的是创建一个“shuffle”按钮,在gridPane中随机改变每个圆的位置。然而,我不断遇到一大堆问题。 这是我到目前为止所拥有的。我的两个类(没有添加XML文件): 控制器类 主类