日記#742#743

#742 8月11日

今日はドラッグアンドドロップは一旦おいておいて、まずはあるオブジェクト(ボタンなど)の配下に置いているオブジェクト(正確にはオブジェクトに付与したID)を見つける処理を完成させるた
理由はドラッグアンドドロップする際の関数を汎用的にするためには、ドラッグアンドドロップするものを任意に取得できなければいけないからだと考えたからだ
※これまでのテキストボックスに文字を出力させたりする機能は文字を出力させる物1個だけを指定していたので汎用的ではなかった。

結果は以下である

出力結果

上から

  • 対象オブジェクトの親オブジェクトのID

  • 対象オブジェクトの2つ上の親オブジェクトのID

  • 対象オブジェクトの2つ上の親オブジェクトの配下にあるオブジェクトの総数

  • 対象オブジェクトの2つ上の親オブジェクトの配下にある1つ目のオブジェクトのID

  • 対象オブジェクトの2つ上の親オブジェクトの配下にある2つ目のオブジェクトのID

  • 対象オブジェクトの配下にあるオブジェクトの総数

  • 対象オブジェクトの配下にあるオブジェクトのID


今回は下記の記事の順に解決できた

参考1:
※子ノード取得するために必要なObservableListを使用した際に下記のエラーが出た際にその理由を解明する時に出会えた記事

エラー: シンボルを見つけられません
    public ObservableList<Node> getchildren;
           ^
  シンボル:   クラス ObservableList
  場所: クラス MainController

参考2:
子ノード取得するために必要なObservableListを使用する時にimportする必要があるJavaFX Collectionsについて(公式文書)

参考3:
※子ノードを取得するために親ノードの持つ関数の一覧を確認する時に使用(公式文書)
※実際にはこの中のgetChildrenUnmodifiableを使用して子ノード(あるオブジェクトの配下を取得する関数)

もちろん今回も解決策を見つけるのは一筋縄ではいかなかった。
相変わらず探し方が難しいなと思う。
ただこれでドラッグアンドドロップの事前準備ができたので次こそはドラッグアンドドロップに挑戦したい。

ソースコードの全文に関してはいつかどこかで展開する予定なのでそれまでこの記事を参考にしていただける場合は各参考記事を参考にしていただけたらと思う。

#743 8月12日

今日はドラッグアンドドロップを試してみたが自分で作成した方は上手くいかず。

参考にした下記の記事を丸パクりしたものは上手く動き、ドラッグアンドドロップの機能を完全に使用できていた。

さて、今回問題になっていることは
参考にしてきた記事の全てでドラッグアンドドロップの処理が@Overrideされた関数に見えるもの中に含まれていること
だ。

もう2つ参考を載せる。
そのいずれもが@Overrideされている処理の中にドラッグアンドドロップの処理が記載されている。

参考1(公式文書):

参考2:

これらの内容からドラッグアンドドロップ機能を実装できるようにしたい。

そこからまた少しだけ触っていたけれど、ひとまずエラーはいていた原因はjavafx.fxml.Initializableをimportし忘れていたことが原因だった。

Unity×Visual Studioを使用しているとImportあたりの部分は自動で入力しているサポートがついているのでついつい自動入力されていると思い込んでそのまま進めていってしまう。

エラー: シンボルを見つけられません
が出た時はまずimport書き忘れの可能性がほぼ100%であることを覚えておきたい。



この記事が気に入ったらサポートをしてみませんか?