जावाएफएक्स में डेटाफ्लॉवर सही ढंग से पहचाना नहीं गया है

I'm experiencing a problem when D&D a custom object from Swing to JavaFX and I'm wondering if I'm doing something wrong or its probably a Java FX bug.

मेरा स्थानांतरण योग्य निम्नलिखित के रूप में परिभाषित किया गया है:

public class TransferableEmployee implements Transferable {

  public static final DataFlavor EMPLOYEE_FLAVOR = new DataFlavor(Employee[].class, "Employee");
  public static final DataFlavor DEFINITION_FLAVOR = new DataFlavor(PropertyDefinition[].class, "Definition");

  private static final DataFlavor FFLAVORS [] = {EMPLOYEE_FLAVOR, DEFINITION_FLAVOR};

  private Employee[] employees;
  private PropertyDefinition[] propertyDefinitions;

  public MintTransferableEmployee(Employee[] employees, PropertyDefinition[] propertyDefinitions) {
    this.employees = employees != null ? employees.clone() : null;
    this.propertyDefinitions = propertyDefinitions != null ? propertyDefinitions.clone() : null;
  }

  public DataFlavor[] getTransferDataFlavors() {
    return FFLAVORS.clone();
  }

  public Object getTransferData(DataFlavor aFlavor) throws UnsupportedFlavorException  {

    Object returnObject = null;
    if (aFlavor.equals(EMPLOYEE_FLAVOR)) {
      returnObject = employees;
    }
    else if(aFlavor.equals(DEFINITION_FLAVOR)){
      returnObject = propertyDefinitions;
    }
    else{
      throw new UnsupportedFlavorException(aFlavor);
    }
    return returnObject;
  }

  public boolean isDataFlavorSupported(DataFlavor aFlavor) {
    boolean lReturnValue = false;
    for (int i=0, n=FFLAVORS.length; i

मैंने एक छवि दृश्य (एफएक्स घटक) बनाया है जहां मैंने setOnDragOver को निम्न के रूप में जोड़ा है:

employeePhotoImageView.setOnDragOver(new EventHandler() {

      @Override
      public void handle(DragEvent event) {
        System.out.println("dragOver");
        event.getDragboard().getContentTypes();
        event.getDragboard().getContent(DataFormat.lookupMimeType("application/x-java-serialized-object"));

      }
    });

GetContentTypes() [[application/x-java-serialized-object]] के साथ एक मानचित्र देता है, इसलिए अब मैं सामग्री प्राप्त करने का प्रयास करता हूं, और यह केवल संपत्ति परिभाषा की सूची देता है लेकिन कोई कर्मचारी नहीं (जो इस मामले में, मुझे जरूरत है)।

यदि मैं हस्तांतरणीय में प्रॉपर्टीडिफिनिशन के डेटा को हटा देता हूं, तो कर्मचारी getContent (DataFormat) विधि में वापस आ जाता है।

मेरे लिए, इसका मतलब है कि जावाएफएक्स केवल 1 डेटाफ्लॉवर के साथ काम करता है या किसी भी तरह से यह केवल स्थानांतरण योग्य में पाए गए अंतिम स्वाद को वापस कर रहा है।

इस पर कोई सुराग?

अग्रिम धन्यवाद...

0
अस्थायी रूप से मैंने ट्रांसफर योग्य कर्मचारी और प्रॉपर्टीज नामक एक नई स्थानांतरण योग्य वस्तु बनाई है, जिसमें केवल 1 डेटाफ्लॉवर है, जो मूल रूप से इसकी एक जोड़ी <टी 1, टी 2> है जिसमें इस मामले में टी 1 कर्मचारी के साथ भर जाता है [] और टी 2 एक संपत्ति परिभाषा [] है। लेकिन शायद यह अब तक का सबसे अच्छा समाधान नहीं है।
जोड़ा लेखक JDDelgado, स्रोत
मैंने अपनी पिछली टिप्पणी में एक तरीका जोड़ा, एक कस्टम जोड़ी <टी 1, टी 2> ऑब्जेक्ट के साथ 1 माइम प्रकार, यह विकास और निष्पादन योग्य जार के तहत काम कर रहा है।
जोड़ा लेखक JDDelgado, स्रोत
मुझे पता है कि यह एक पुराना सवाल है लेकिन मैं आज इस समस्या में भाग गया। ऐसा लगता है जैसे जावाफक्स केवल "ड्रैग बोर्ड" पर किसी विशेष माइम प्रकार के एक उदाहरण को संभाल सकता है। मुझे नहीं पता कि यह एक बग है या javafx को "ड्रैग बोर्ड" का उपयोग करने के तरीके के बारे में कुछ प्रकार के मानक के बारे में कठोर बताया जा रहा है। अगर मुझे और पता चलता है तो मैं आपको बता दूंगा।
जोड़ा लेखक BenjaminLinus, स्रोत
दरअसल, यह काफी है जो हमें करना है। हमें इसके आसपास काम करने का कोई रास्ता नहीं मिला। डीबगर में मैं देख सकता हूं कि "ड्रैगबोर्ड" का उपयोग मैम प्रकार के मानचित्र द्वारा सामग्री पर किया जाता है, जो मुझे लगता है कि केवल एक दिए गए माइम प्रकार का एक उदाहरण होने के लिए लेखांकन क्या है। यदि आप डेटाफ्लॉवर क्लास जावाडोक को देखते हैं तो आप देखेंगे कि स्विंग mimetype (जैसे "छवि/x-java-image; class = java.awt.Image") में क्लास पैरामीटर का समर्थन करता है लेकिन जावाएफएक्स पूरी तरह कक्षा पैरामीटर को अनदेखा करता है और केवल सामग्री के लिए mimetype मानचित्र।
जोड़ा लेखक BenjaminLinus, स्रोत