Drag & Drop für Panels

babuschka

Top Contributor
Hallo Freunde, erst einmal wünsch ich euch ein frohes neues Jahr :toll:

kurze Info was ich vorhabe:
Habe einen Panel. Der Benutzer soll per Drag&Drop ein Wunschlied auf das Panel ziehen. Es soll
dann im Hintergrund gespeichert werden. Nun wenn der Benutzer auf das Panel klickt, soll das Lied abgespielt werden.

Klassen: MyTransferhanderHandler, MP3Player, Gui, Track

Java:
public boolean importData(TransferSupport info) {
        if (!canImport(info)) {
            return false;
        }
        //Transferobjekt holen
        Transferable transfer = info.getTransferable();

        try {
            List<File> listFile = (List<File>) transfer.getTransferData(DataFlavor.javaFileListFlavor);
            
        } catch (UnsupportedFlavorException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
     
        return false;
    }

Irgendwelche Vorschläge wie ich das hinbekommen könnte?

Den Panel füge ich in der Gui klasse hinzu.

Vielen Danke vorab :toll:
 
Irgendwie klingt das gerade, als ginge es erstmal nur um
Java:
private List<File> listFile;

public boolean importData(TransferSupport info) {
...
        try {
            // WEG List<File> listFile = (List<File>) transfer.getTransferData(DataFlavor.javaFileListFlavor);
            // HIN:
            listFile = (List<File>) transfer.getTransferData(DataFlavor.javaFileListFlavor);
            
...

:bahnhof:
 
Drag and Drop funktioniert ja soweit einwandfrei,

panel.setTransferHandler(transferHandler);

so und wie teile ich mit wenn ich auf diesen Panel klicke, dass er die Datei abspielt, die sich darin befindet?#

Java:
 public void mouseClicked(MouseEvent e) {
        panel = (JPanel) e.getSource();
        System.out.print("Wurde geklickt");

        // Reihe 1 ----------------------------------------- 
        
        // Panel 1, Genre: 
        if (panel.getName().equals("x=0, y=0")) {
            panel.setBackground(new Color(86, 144, 153));
}
 

Zurück
Oben