質問

私はJavafxを試してみましたが、親指のサイズと位置を取得したり、マウスオーバーイベントを発射したりするなど、スライダーの下部構造に関する操作を実行しようとしていました。スライダー自体の位置と価値に基づく情報。この下部構造にプログラム的にアクセスし、それに関する基本的な情報を収集することは可能ですか?

役に立ちましたか?

解決

Sliderは通常のJavafxノードなので、そのためにツリーをレンダリングすることができます。サブノードは、たとえばStyleClassによって識別できます。スライダー構造を印刷する次の例を参照してください。スタイルクラスの「親指」を備えたノードから、親指の画面位置を取得できます。

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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top