質問するログイン新規登録

回答編集履歴

1

補足

2017/09/26 00:03

投稿

KSwordOfHaste
KSwordOfHaste

スコア18406

answer CHANGED
@@ -56,4 +56,7 @@
56
56
  pane.getChildren().add(ellipse);
57
57
  ```
58
58
 
59
- 蛇足ですが、チャートのプロット領域の範囲は(自動調整の場合)XYChart.Seriesに含まれるデータの座標に影響され変化します。よって画面表示後に動的にデータを変更するようなアプリケーションの場合、プロット領域が変化するようなデータ変更・ユーザー操作の度に上記の座標計算をやりなおす必要がある点にも注意が必要と思います。
59
+ 蛇足ですが、チャートのプロット領域の範囲は(自動調整の場合)XYChart.Seriesに含まれるデータの座標に影響され変化します。よって画面表示後に動的にデータを変更するようなアプリケーションの場合、プロット領域が変化するようなデータ変更・ユーザー操作の度に上記の座標計算をやりなおす必要がある点にも注意が必要と思います。
60
+
61
+ ---
62
+ 補足:前述のプロット領域のノードを求める方法ですが、これはChartノードのSkinに実装されているので単にリファレンスをみても書いてありません。Skinがどのような内部構成でコントロールを実装しているかについては[JavaFX CSSリファレンス・ガイド](https://docs.oracle.com/javase/jp/8/javafx/api/javafx/scene/doc-files/cssref.html)を参照するとよいと思います。このページのXYChatの項目をみるとCSSクラス:chart-plot-backgroundのノードがプロット領域を構成するものであるといったことがわかります。また今回のようなノード階層と位置関係に悩むことはJavaFXではままあることと思います。そんな場合にお勧めしたいツールに[Scenic View](http://fxexperience.com/scenic-view/)というのがあります。これで実行中のアプリケーションのシーングラフの各ノードのプロパティーが(一々デバッグプリントしなくても)簡単に参照できるので便利と思います。