非常に単純なインターフェイスを開発するために、Scene Builderと一緒にFXMLを使用しています。以下、最初のイメージはレイアウト階層を表します。 2番目の画像は、ボタンが押されたときにテキスト領域を表示します。JavaFXシーンビルダ - 親ノード間のドラッグアンドドロップ
アクションイベントメソッドは、新しいテキスト領域をインスタンス化し、それを最初のフローペイン(左から右)に割り当てます。私の目標は、各テキスト領域を他のフローペインのいずれかにドラッグアンドドロップすることです。
私の最初の試みはMOUSE_PRESSEDを検出するためのイベントハンドラを使用して割り当てを使用していた:textArea.addEventHandler(MouseEvent.DRAG_DETECTED, e-> handle(e));
私はハンドル方法を設定するに着いたとき、物事が混乱しました。たとえば、MOUSE_EXITED_TARGET、MOUSE_ENTERED_TARGETなど、他のさまざまなMouseEventを含める必要がありますか?そして、MOUSE_RELEASEDハンドルはどのように構成されていますか?
私はDragboardとClipboardを見始めましたが、そこにも多くの運が見つかりませんでした。クリップボードは文字列の値を扱うことができるように見えました。私は、私の苦境への簡単な答えがあると確信しています。それは、私が未知の領域で不思議に思っていることをはっきりと示しているからです。
私はいくつかの "教科書"リソースを読みましたが、実行時に構築されたオブジェクトの動きにすべて対応しており、ほとんどは一般的または直接的な例のように見えます。
注記 私はイメージを謝罪します。私はそれがはっきりしていないことを認識しています。グリッドペインには5つのフローペインが配置されています。私はすぐにそれを編集し、更新しようとします。
私はあなたの応答を読んだ後、このくらいの明確な理解を持っていると思うので、あなたに感謝!メソッド/イベントハンドラをどこに配置する必要があるのか説明できますか? – wellington
これはおそらく、それらの作成場所によって異なります。 buttonを使用してtextAreaを作成するので、おそらくeventHandlerを接続することができます。この例では、 'Controller'で' Initializable'によって継承された 'initialize(URL、ResourceBundle)'を使用しました。だから、初期化時に配線されています。 – Jaims