gpt4 book ai didi

java - 是否可以在 javafx 中的 VBox 中找到特定的超链接?

转载 作者:行者123 更新时间:2023-12-01 10:55:59 25 4
gpt4 key购买 nike

是否可以在 VBox 容器中找到特定的超链接?

假设我有代码可以将超链接动态添加到 VBox 元素中,但我不想添加相同的链接两次,最简单的方法有什么想法吗?

我想到的是通过执行以下操作来搜索并查看超链接是否已在 VBox 内:

myContainer.getChildren().forEach(node -> {
if(node.getClass().getSimpleName().equals("Hyperlink") {
Node n = node.getClass();
// Do my stuff
}
});

最佳答案

您的代码比较类名(不带包),因此您无法通过这种方式区分各种超链接。您可以做的是为每个超链接分配一个基于URL的ID:

String url = ...
String urlToID = String.valueOf(url.hashCode());
...
// check if that urlToID is already present
boolean present = false;
for (Node child : myContainer.getChildren()) {
if (child.getId().equals(urlToID)) {
present = true;
break;
}
if (!present) {
Hyperlink link = ...
link.setId(urlToID);
myContainer.getChildren().add(link);
}

可以使用流进一步优化 for 循环,但我认为这更具可读性:

boolean present = myContainer.getChildren().stream().filter(node -> 
return node.getId().equals(urlToId);)
.findFirst().isPresent();

关于java - 是否可以在 javafx 中的 VBox 中找到特定的超链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33606295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com