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

回答編集履歴

2

誤記訂正

2017/01/28 03:20

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -1,4 +1,4 @@
1
- ScatterChart上でプロットされるデータの点はXYChart.Dataクラスで表されますが、XYChar.Dataクラスには画面上へそのノードを表現するためのnodeプロパティーが用意されています。これはNodeクラスの派生クラスなのでsetOnMouseClickedでマウスクリックイベントを設定できます。
1
+ ScatterChart上でプロットされるデータの点はXYChart.Dataクラスで表されますが、XYChar.Dataクラスには画面上へそのを表現するためのnodeプロパティーが用意されています。これはNodeクラスの派生クラスなのでsetOnMouseClickedでマウスクリックイベントを設定できます。
2
2
 
3
3
  たとえばチャートに表示するデータ列(XYChar.Series)を生成するときに次のようにするとマウスクリックイベントを設定できると思います。
4
4
 
@@ -35,7 +35,7 @@
35
35
 
36
36
  訂正:
37
37
  上の回答に「いつそのNodeが追加されるかわからないので」と書きましたが、ご質問にあるページのサンプルを見るとstartメソッドでnodeプロパティーにtooltipをインストールするコードが書いてありますね・・・
38
- 実際にやってみるとチャートへデータ系列をsetDataするときNodeが追加されるみたいです。自分の回答の方法でも動きはしますが、わざわざChangeListenerを使わなくてもよさそうです。
38
+ 実際にやってみるとチャートへデータ系列をsetDataするときNodeが追加されるみたいです。自分の回答の方法でも動きはしますが、わざわざChangeListenerを使わなくてもよさそうです。
39
39
  チャートへデータ列を設定した後でデータ列を走査してハンドラーを登録すればいいんですね。以下はサンプルコードの抜粋ですがtooptipのかわりにマウスクリックイベントのハンドラーを登録する例です。
40
40
 
41
41
  ```

1

訂正

2017/01/28 03:20

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -29,4 +29,20 @@
29
29
  ...
30
30
  }
31
31
  }
32
+ ```
33
+
34
+ ---
35
+
36
+ 訂正:
37
+ 上の回答に「いつそのNodeが追加されるかわからないので」と書きましたが、ご質問にあるページのサンプルを見るとstartメソッドでnodeプロパティーにtooltipをインストールするコードが書いてありますね・・・
38
+ 実際にやってみるとチャートへデータ系列をsetDataするときのNodeが追加されるみたいです。自分の回答の方法でも動きはしますが、わざわざChangeListenerを使わなくてもよさそうです。
39
+ チャートへデータ列を設定した後でデータ列を走査してハンドラーを登録すればいいんですね。以下はサンプルコードの抜粋ですがtooptipのかわりにマウスクリックイベントのハンドラーを登録する例です。
40
+
41
+ ```
42
+ //質問にあるページのサンプルコードの抜粋
43
+ scatterData.stream().forEach((series) -> {
44
+ series.getData().stream().forEach(point -> {
45
+ point.getNode().setOnClicked(this::onChartDataClicked);
46
+ });
47
+ });
32
48
  ```