【发布时间】:2017-05-10 19:47:24
【问题描述】:
我在 css 文件中有以下 css 类
.split-pane > .split-pane-divider {
-fx-background-insets: 0;
-fx-padding: 0 0 0 0;
-fx-background-color: red;
}
我有一个带有两个分隔线的 splitPane,我将这些分隔线称为 Node(!)。我是说
Node leftDivider;
Node rightDivider;
我通过这种方式获得对它们的引用
List<Node> nodes=getDividerNodes(splitPane);
leftDivider=nodes.get(0);
rightDivider=nodes.get(1);
...
public static List<Node> getDividerNodes(SplitPane splitPane){
Map<Double,Node> sortedMap=new TreeMap<>();
if (splitPane.getOrientation()==Orientation.HORIZONTAL){
splitPane.lookupAll(".split-pane-divider").stream().forEach(div -> {
if (div.getParent()==splitPane){
sortedMap.put(div.getLayoutX(), div);
}
});
}else{
splitPane.lookupAll(".split-pane-divider").stream().forEach(div -> {
if (div.getParent()==splitPane){
sortedMap.put(div.getLayoutY(), div);
}
});
}
return new ArrayList<>(sortedMap.values());
}
现在我不想显示 leftDivider 但不显示 rightDivider。我愿意
leftDivider.setStyle("-fx-padding: 0 5 0 0;");
但是,我看到了两个分隔线 - 左侧和右侧。此外,如果我只想看到正确的分隔线,我会这样做
rightDivider.setStyle("-fx-padding: 0 5 0 0;");
我没有看到任何分隔符。
在我看来,在一个 splitPane 中单独控制分隔线是不可能的。如果我错了,请说我怎样才能只显示两个分隔线之一?
【问题讨论】:
-
您能否详细说明如何获得对分隔线的引用?
-
@James_D 我发布了代码。
-
是的,这看起来像一个错误......