2
私はまだjavaFXの新版です。私のコードでは、タブのヘッダの位置とサイズを取得する必要がありますが、サイズや位置を返すプロパティや関数を見つけることはできません。JavaFXのタブヘッダーの場所とサイズを検出する方法
私はまだjavaFXの新版です。私のコードでは、タブのヘッダの位置とサイズを取得する必要がありますが、サイズや位置を返すプロパティや関数を見つけることはできません。JavaFXのタブヘッダーの場所とサイズを検出する方法
私はあなたの質問を正しく理解していませんが、一般的に関数を使用して、実際にはStackPane
の.tab-header-area CSS selectorを得ることができます。
TabPane tabPane = new TabPane();
tabPane.getTabs().addAll(new Tab("Tab1"), new Tab("Tab2"), new Tab("Tab3"));
Button b = new Button("Get header");
b.setOnAction((e) -> {
StackPane headerArea = (StackPane) tabPane.lookup(".tab-header-area");
System.out.println("Coordinates relatively to Scene: " + headerArea.localToScene(headerArea.getBoundsInLocal()));
});
出力
Coordinates relatively to Scene: BoundingBox [minX:0.0, minY:0.0, minZ:0.0, width:500.0, height:29.0, depth:0.0, maxX:500.0, maxY:29.0, maxZ:0.0]
あなたは個々のタブについての情報を取得したい場合:
Set<Node> tabs = tabPane.lookupAll(".tab");
for (Node node : tabs) {
System.out.println("Coordinates relatively to Scene: " + node.localToScene(node.getBoundsInLocal()));
}
と出力を
Coordinates relatively to Scene: BoundingBox [minX:5.0, minY:5.0, minZ:0.0, width:54.0, height:24.0, depth:0.0, maxX:59.0, maxY:29.0, maxZ:0.0]
Coordinates relatively to Scene: BoundingBox [minX:59.0, minY:5.0, minZ:0.0, width:38.0, height:24.0, depth:0.0, maxX:97.0, maxY:29.0, maxZ:0.0]
Coordinates relatively to Scene: BoundingBox [minX:97.0, minY:5.0, minZ:0.0, width:38.0, height:24.0, depth:0.0, maxX:135.0, maxY:29.0, maxZ:0.0]
Scene
を基準にして座標を取得するために、localToScene関数をStackPane
のlocal boundsのパラメータで使用しました。
注:の検索は、CSSがScene
に適用されるまで動作するとは限りません。
なぜこの情報が必要なのか不思議です。おそらく、実際に何をしようとしているのかを行うためのより良い方法があります。 –