【发布时间】:2017-05-20 17:54:01
【问题描述】:
我正在尝试绑定要显示在RangeSlider 上下拇指上方的标签。
无论用户将其滑动到何处,标签的位置都应始终保持在其各自拇指上方。像这样:
我的方法是将侦听器附加到每个拇指,以便我可以将标签设置为每次用户滑动时都有适当的 X/Y 坐标。但是当我运行以下代码时,我似乎无法通过 css 选择器获得对个人拇指的引用。
我关注了this post,但这只用了一个拇指,因此很容易参考。您如何在我的上下文中正确使用 CSS 选择器,或者如果我的有缺陷,有什么更好的方法?
控制器
public class SliderDemoController implements Initializable {
@FXML
private RangeSlider range;
@Override
public void initialize(URL location, ResourceBundle resources) {
Pane thumb = (Pane) range.lookup(".range-slider .low-thumb");
System.out.println(thumb); // <-- Prints null
}
}
主要
public class SliderDemoMain extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage initStage) throws IOException {
FXMLLoader loader = new FXMLLoader(Drag.class.getClassLoader().getResource("sliderdemo.fxml"));
Parent root = loader.load();
Scene scene = new Scene(root);
Stage primaryStage = new Stage();
primaryStage.setTitle("Slider Demo");
primaryStage.setScene(scene);
primaryStage.show();
}
}
styleMain.css
.range-slider .range-bar {
-fx-background-color: grey;
}
.range-slider .low-thumb {
//....
}
.range-slider .high-thumb {
//....
}
sliderdemo.fxml 的顶行
<HBox fx:id="menuBar" maxHeight="-Infinity" minHeight="-Infinity" prefHeight="79.0" stylesheets="@styleMain.css" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.propertydrop.SliderDemoController">
【问题讨论】:
标签: javafx rangeslider controlsfx