私は JavaFX を使って実験してきましたが、それを推定することなく、親指のサイズと位置を取得したり、独自のマウスオーバー イベントを発生させたりするなど、Slider の下部構造に対していくつかの操作を実行しようとしていました。スライダー自体の位置と値に基づく情報。この部分構造にプログラムでアクセスして、基本的な情報を収集することはできますか?
1600 次
1 に答える
2
Slider は通常の JavaFX Node であるため、レンダリング ツリーをトラバースできます。サブノードは、styleClass などによって識別できます。Slider 構造を出力する次の例を参照してください。スタイルクラス「親指」を持つノードから、親指の画面位置を取得できます。
public class DoSlider extends Application {
@Override
public void start(Stage stage) {
Slider slider = SliderBuilder.create().min(0).max(100).value(50).showTickLabels(true).showTickMarks(true).build();
stage.setScene(new Scene(new Group(slider)));
stage.show();
traverse(slider);
}
public void traverse(Parent node) {
for (Node subNode : node.getChildrenUnmodifiable()) {
System.out.println(subNode.getClass().getSimpleName() + " " + subNode.getStyleClass());
if (subNode instanceof Parent) {
traverse((Parent)subNode);
}
}
}
public static void main(String[] args) {
launch(DoSlider.class, args);
}
出力は次のようになります。
SliderSkin slider
NumberAxis axis
Label label axis-label
LabelSkin label axis-label
Text
Path axis-tick-mark
Path axis-minor-tick-mark
Text tick-mark
Text tick-mark
Text tick-mark
Text tick-mark
Text tick-mark
StackPane track
StackPane thumb
于 2011-11-18T17:29:44.637 に答える