Drag und Drop - Fehler während Laufzeit

Status
Nicht offen für weitere Antworten.

Rex

Bekanntes Mitglied
Liebe Freunde,

ich schätze, es handelt sich nur um einen kleinen Fehler.
Allerdings weiß ich leider nicht genau, woran es liegen kann.

Mein Code für das Drag und Drop:
Code:
   public void init() {    //Parameter aus der Webseite auslesen
      SID = getParameter("SID");
      TID = getParameter("TID");
      receiveURL = getParameter("receiveURL");
      orderno = getParameter("OID");

/////////////////////////////////////////////Frame erzeugen und anzeigen (Das ist deaktiviert - wir wollen das direkt mit dem Applet.)
      /*
      f = new Frame("Uploader");
      f.setSize(250, 100);
      f.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            f.dispose();
         }
      });
      f.setVisible(true);
       **/
///////////////////////////////////////////////////////////////////////
      new DropTarget(this, new DropTargetAdapter() {
         public void drop(DropTargetDropEvent evt) {
            try {
               Transferable t = evt.getTransferable();
               DataFlavor d = evt.getCurrentDataFlavors()[0];
               evt.acceptDrop(evt.getDropAction());
               Vector vec = (Vector) t.getTransferData(d);
               for (int i = 0, j = vec.size(); i < j; i++) {
                  processFile((File) vec.get(i));
               }
            }
            catch (Exception e) {
               e.printStackTrace();
            }
         }
      });
   }

Leider wird meine Transfer-Function leider gar nicht aufgerufen,
denn es kommt zu einem Fehler während der Laufzeit - wenn ich nämlich
eine File vom Desktop auf das Java-Applet ziehe.

java.lang.ClassCastException: java.util.Arrays$ArrayList
at DFApplet$1.drop(DFApplet.java:44)
at java.awt.dnd.DropTarget.drop(Unknown Source)
at sun.awt.dnd.SunDropTargetContextPeer.processDropMessage(Unknown Source)
at sun.awt.dnd.SunDropTargetContextPeer.access$800(Unknown Source)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchDropEvent(Unknown Source)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(Unknown Source)
at sun.awt.dnd.SunDropTargetEvent.dispatch(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Woran liegt dass?
Das habe ich, seitdem ich kein extra Fenster für das Drag und Drop haben wollte, und ich deshalb mit this auf das Applet selbst referenziert habe.


Vielen Dank!
MFG
Rex
 
G

Gast

Gast
Hiho!

Rex hat gesagt.:
java.lang.ClassCastException: java.util.Arrays$ArrayList
at DFApplet$1.drop(DFApplet.java:44)

Steht doch eigentlich alles da.

Exception wurde in "DFApplet.java" in Zeile 44 geworfen.

Und geworfen wurde die Exception, beim Versuch zu casten (irgendein Array und/oder ArrayList).

Aus deinem angegebene Code ist der Fehler nicht ersichtlich, da er ganz woanders zu suchen ist. ;)

Gruß,
Gastlicher!!
 

Rex

Bekanntes Mitglied
:oops: Hier der ganze Code:

Code:
   public void init() {
      //Parameter aus der Webseite auslesen
      SID = getParameter("SID");
      TID = getParameter("TID");
      receiveURL = getParameter("receiveURL");
      orderno = getParameter("OID");

/////////////////////////////////////////////Frame erzeugen und anzeigen (DEAKTIVIERT! NICHT MEHR VERWENDET!)
      /*
      f = new Frame("Uploader");
      f.setSize(250, 100);
      f.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            f.dispose();
         }
      });
      f.setVisible(true);
       **/
///////////////////////////////////////////////////////////////////////
      new DropTarget(this, new DropTargetAdapter() {
         public void drop(DropTargetDropEvent evt) {
            try {
               Transferable t = evt.getTransferable();
               DataFlavor d = evt.getCurrentDataFlavors()[0];
               evt.acceptDrop(evt.getDropAction());
               Vector vec = (Vector) t.getTransferData(d);
               for (int i = 0, j = vec.size(); i < j; i++) {  //ENTSPRICHT ZEILE 45!
                  processFile((File) vec.get(i));
               }
            }
            catch (Exception e) {
               e.printStackTrace();
            }
         }
      });
   }

Die Zeile 45 entspräche in dem Quelltextausschnit Zeile 27!


Vielen Dank!
MFG
Rex
 

AlArenal

Top Contributor
Das kommt davon wenn man nen Cast macht, ohne auf null und/oder instanceof zu prüfen. Offensichtlich liefert t.getTransferData(d) nunmal keinen Vector...
 

Leroy42

Top Contributor
Es dürfte eher Zeile 28 sein, da in 27 kein Cast vorkommt.
Code:
 processFile((File) vec.get(i))
Du holst hier das Objekt mit Index i aus deinem Vektor
und willst es in eine File casten.

Die Fehlermeldung sagt aus, daß dies nicht geht.

Objekte welchen Typs schreibst du in den Vektor; es sind
zumindest keine Instanzen der Klasse File (oder einer von dieser geerbten)
 

Rex

Bekanntes Mitglied
OK - hier die ganze Class:

Code:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.datatransfer.*;
import java.awt.dnd.*;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.JOptionPane;

public class DFApplet extends Applet {
   private String SID;
   private String TID;
   private String receiveURL;
   private String orderno;
   private Image img;
   private Frame f;

   public void init() {
      //Parameter aus der Webseite auslesen
      SID = getParameter("SID");
      TID = getParameter("TID");
      receiveURL = getParameter("receiveURL");
      orderno = getParameter("OID");

/////////////////////////////////////////////Frame erzeugen und anzeigen
      /*
      f = new Frame("Uploader");
      f.setSize(250, 100);
      f.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            f.dispose();
         }
      });
      f.setVisible(true);
       **/
///////////////////////////////////////////////////////////////////////
      new DropTarget(this, new DropTargetAdapter() {
         public void drop(DropTargetDropEvent evt) {
            try {
               Transferable t = evt.getTransferable();
               DataFlavor d = evt.getCurrentDataFlavors()[0];
               evt.acceptDrop(evt.getDropAction());
               Vector vec = (Vector) t.getTransferData(d);
               for (int i = 0, j = vec.size(); i < j; i++) {
                  processFile((File) vec.get(i));
               }
            }
            catch (Exception e) {
               e.printStackTrace();
            }
         }
      });
   }

   public void processFile(File f) {
      try {
         InputStream serverInput = ClientHttpRequest.post( 
            new URL("http://www.xxx.de/uptest.php"),
            new Object[] {
               "orderno",
               orderno,
               "SID",
               SID,
               "TID",
               TID,
               "data",
               f
            }
         );
         String statusmessage = "INITIALISATION ERROR! - FATAL ERROR: Bitte kontaktieren Sie umgehend den Support (info@xxx.de), falls dieses Problem weiterhin besteht!";
         
         String serverresponse = serverInput.toString();
                 if(   "" == serverresponse){ statusmessage = "Es ist ein kritischer Verbindungsfehler aufgetreten. Wenn dieses Problem trotz mehrmaligem Versuchens weiterhin besteht, wenden Sie sich umgehend an den Support (info@deustchfinder.de).";
          } else if("101" == serverresponse){ statusmessage = "Zugriff für Upload verweigert!";
          } else if("201" == serverresponse){ statusmessage = "Server wird gerade gewartet. Bitte versuchen Sie es später noch einmal!";
          } else if("202" == serverresponse){ statusmessage = "Der Upload-Service ist gerade aus technischen Gründen nicht erreichbar. Versuchen Sie es später bitte erneut!";
          } else if(serverresponse.indexOf("300") != -1){ statusmessage = "OK";
          } else if("301" == serverresponse){ statusmessage = "Transferfehler! Ihre Datei " + f.getName() + " ist zu groß! Bitte komprimieren Sie diese und versuchen Sie es erneut!";
          } else if("302" == serverresponse){ statusmessage = "Transferfehler! Ihre Datei " + f.getName() + " konnte nicht hochgeladen werden. Es scheint ein interner Fehler im Server aufgetreten zu sein. Falls dieses Problem persitiert, bitte umgehend an den Support (info@xxx.de) wenden!";
          }
          
         String showurl = "";
         
        if(statusmessage != "OK"){ JOptionPane message = new JOptionPane(statusmessage, 1); } else {
       //Showurl:
             //ERFOLGREICH!
         showurl = statusmessage.substring(statusmessage.indexOf("$$$%%%"), statusmessage.length());
       }
         
         
         
      try {
         MediaTracker mt = new MediaTracker(this);
         img = getImage(new URL(showurl));
         mt.addImage(img, 9);
         setImage(img);
      }
      catch (MalformedURLException e) {
         e.printStackTrace();
      }

      }
      catch (Exception e) {
      }
   }


   
   /** Mit Aufruf dieser Methode kann dem Applet zur Laufzeit von außen ein
    * anderes Bild zur Anzeige übergeben werden.
    */
   
   public void setImage(Image img) {
      this.img = img;
      repaint();
   }

   public void paint(Graphics g) {
      if(img != null) {
         g.drawImage(img, 0, 0, this);
      }
   }
}

und die Fehlermeldung (zur Laufzeit - frisch aus der Java-Console):
Java Plug-in 1.5.0_07
Verwendung der JRE-Version 1.5.0_07 Java HotSpot(TM) Client VM
Home-Verzeichnis des Benutzers = E:\Dokumente und Einstellungen\xxx


----------------------------------------------------
c: Konsolenfenster schließen
f: Objekte in Finalisierungswarteschlange finalisieren
g: Speicherbereinigung
h: Diese Hilfemeldung anzeigen
l: ClassLoader-Liste ausgeben
m: Speicherbelegung anzeigen
o: Protokollierung auslösen
p: Proxy-Konfiguration neu laden
q: Konsole ausblenden
r: Richtlinien-Konfiguration neu laden
s: System- und Bereitstellungseigenschaften ausgeben
t: Threadliste ausgeben
v: Thread-Stack ausgeben
x: ClassLoader-Cache löschen
0-5: Trace-Stufe auf <n> setzen
----------------------------------------------------

java.lang.ClassCastException: java.util.Arrays$ArrayList
at DFApplet$1.drop(DFApplet.java:44)
at java.awt.dnd.DropTarget.drop(Unknown Source)
at sun.awt.dnd.SunDropTargetContextPeer.processDropMessage(Unknown Source)
at sun.awt.dnd.SunDropTargetContextPeer.access$800(Unknown Source)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchDropEvent(Unknown Source)
at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(Unknown Source)
at sun.awt.dnd.SunDropTargetEvent.dispatch(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Eigentlich sollen die Daten des auf das Applet gedroppten Objekts der Function "processFile" übergeben werden.


MFG
vielen Dank!
Rex
 

Leroy42

Top Contributor
AlArenal hat dir den Fehler doch schon beschrieben
(Ich hatte einen Fehler in der falschen Zeile vermutet :oops: )

Code:
Vector vec = (Vector) t.getTransferData(d);

getTransferData liefert nun eben keinen Vector
 

Rex

Bekanntes Mitglied
Was liefert er dann?
Buhu :(
Eigentlich wollte ich doch nur eine File übergeben, die ein User auf mein Applet gezogen hat :(

MFG
Rex
 

Leroy42

Top Contributor
Rex hat gesagt.:
Was liefert er dann?
Buhu :(
Eigentlich wollte ich doch nur eine File übergeben, die ein User auf mein Applet gezogen hat :(

MFG
Rex

Dann arbeite dich doch endlich einmal in "Drag&Drop" in Java ein!
Du bist schon Wochen mit diesem Code zugange, ohne auch nur
einen wesentlichen Schritt weitergekommen zu sein

(Wo hast du den Original-Code eigentlich her?)

API hat gesagt.:
getTransferData
Returns an object which represents the data to be transferred. The class of the object returned is defined by the representation class of the flavor.

Das sagt mir jetzt beispielsweise auch erst mal überhaupt nichts,
aber wenn ich das entsprechende Kapitel im Sun-Tutorial
durchlese/arbeite, bin ich mir sicher, in einer Stunde die Grundlagen
verstanden zu haben.

Aber das Lesen nehme ich dir bestimmt nicht ab und Lust & Laune,
mich jetzt wegen dir dort einzuarbeiten habe ich wirklich nicht.


Zumindest bist du jetzt an einem Punkt angelangt, wo dir hier nur
wenige ad hoc weiterhelfen können.

Also: :### ???:L :idea: :D
 

Rex

Bekanntes Mitglied
@Leroy42:
Ehm.. Kannst Du mir nicht einen Link zum Tut. geben.
Dann lese ich mir das auch ganz gründlich durch - ehrlich!

MFG
Rex
 

L-ectron-X

Gesperrter Benutzer
@Rex: Im Originalcode, den ich mal vor Kurzem für dich angepasst habe, stand List als Rückgabewert drin. Hab ich in Vector geändert. Bei mir ließ sich das kompilieren. Hab da vielleicht aber einen Fehler gemacht...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Grid und drag and drop Allgemeine Java-Themen 1
offi Drag and Drop mehrerer File aus Explorer in JTable Allgemeine Java-Themen 1
G Drag and Drop und trotzdem MouseEvents Allgemeine Java-Themen 3
G Datei per Drag and Drop auf den Link öffnen Allgemeine Java-Themen 6
S GUI - Drag & Drop Elemente Allgemeine Java-Themen 10
S Falsches Encoding bei Drag and Drop von Umlauten Allgemeine Java-Themen 16
L jTable drag & drop einzelner Zeilen Allgemeine Java-Themen 4
D [Drag&Drop] Design-Pattern-Frage Allgemeine Java-Themen 4
C Drag & Drop, Icons sollen getauscht werden Allgemeine Java-Themen 4
vladimir Welche API für Grafik und Drag&Drop Allgemeine Java-Themen 3
M Zwischenablage/ Drag and Drop Allgemeine Java-Themen 9
G Drag & Drop Allgemeine Java-Themen 6
M Drag and Drop FileListFlavor unter Ubuntu - Nautilus Allgemeine Java-Themen 5
M Drag and Drop: 3 Fragen Allgemeine Java-Themen 3
G Drag&Drop von Textdateien Allgemeine Java-Themen 13
G Datei Verknuepfung, drag&drop Plattformunabhaengig Allgemeine Java-Themen 3
T Drag und Drop von Applet 1 zu Applet 2 _in_ derselben VM Allgemeine Java-Themen 9
T JLable Drag und Drop Allgemeine Java-Themen 4
R Drag und Drop von externen Files geht nur als Application Allgemeine Java-Themen 2
P drag und drop und move mit 2 Fenstern fkt. nicht 100 %ig Allgemeine Java-Themen 7
F Drag&Drop Allgemeine Java-Themen 10
M In JTables Drag und Drop verbieten Allgemeine Java-Themen 2
L Drag and Drop Table Allgemeine Java-Themen 9
U Drag & Drop Allgemeine Java-Themen 2
E Frage zu Drag and Drop Allgemeine Java-Themen 2
S Drag&Drop einer Datei, wie nur den Dateipfad erhalten? Allgemeine Java-Themen 9
G Drop down Button Menü (Combobox) Allgemeine Java-Themen 7
L Drop Emails von Outlook in eine JList Allgemeine Java-Themen 5
T Java Excel Drop Down Formularsteuerelement Allgemeine Java-Themen 0
R Drang and Drop: Tab bei Firefox Allgemeine Java-Themen 13
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
S Fehler: <ID> erwartet Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
Pinhg Discord JDA Bot - Fehler Allgemeine Java-Themen 3
KonradN CVE-2022-21449: Fehler in Java bei Signaturprüfung Allgemeine Java-Themen 20
L Fehler mit Boolean. (Glaube ich zumindest) Allgemeine Java-Themen 6
P Selenium Scriipt zeigt Fehler beim Import Allgemeine Java-Themen 3
O Fehler bei Variablen Allgemeine Java-Themen 2
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
M Kein Scanner Fehler durch falsche EIngabe Allgemeine Java-Themen 4
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
yakazuqi Fehler beim Laden. JDA (Java Discord API) Allgemeine Java-Themen 1
C Fehler bei der Benutzung von itextpdf Allgemeine Java-Themen 1
U Fehler beim Compillieren Allgemeine Java-Themen 13
x46 String Format Fehler Allgemeine Java-Themen 2
bueseb84 Fehler beim Import von Maven Dependencies aus lokalem artifactory Allgemeine Java-Themen 2
MiMa Datei verschieben hat einen Fehler?? Allgemeine Java-Themen 20
O xlsx Datei auslesen mit POI von Apache wirft seltsamen Fehler. Allgemeine Java-Themen 11
T Java-Quiz Code Fehler Allgemeine Java-Themen 10
A Fehler beim Öffnen eines Projekts Allgemeine Java-Themen 6
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
T Fehler bei IF abfrage Allgemeine Java-Themen 8
C Fehler beim Debuggen von Listen Allgemeine Java-Themen 4
M Einheitenrechner - Fehler Allgemeine Java-Themen 12
D Erste Schritte Fehler mit negativen und 0 Zahlen im String Allgemeine Java-Themen 6
T Denk-Fehler? Allgemeine Java-Themen 4
A Finde den Fehler nicht. Allgemeine Java-Themen 7
H Class 'java.io.BuferedReader' is not present in JRE Emulation Libary | GWT Fehler?! Allgemeine Java-Themen 0
D Unbekannter Fehler Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 3
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
R Wo ist mein Fehler in der Methode DRINGEND Allgemeine Java-Themen 9
R Wo ist mein Fehler in diesem Code Allgemeine Java-Themen 7
I Fehler beim Ant-Package erstellen mit Java 9 Allgemeine Java-Themen 1
L Fehler bei der Ausführung einer Jar Allgemeine Java-Themen 2
T OOP Fehler im Design Allgemeine Java-Themen 9
Thallius Unfassbarer Fehler. Brauche Ideen zum Debuggen Allgemeine Java-Themen 9
U Eclipse MANIFEST fehler Allgemeine Java-Themen 7
I Fehler bei HashMaps Darstellung Allgemeine Java-Themen 10
R Classnotfoundexception Fehler Allgemeine Java-Themen 3
A Fehler beim Aktualisieren JTable Allgemeine Java-Themen 1
N Compiler-Fehler Warum erhalte ich einen Nullpointer Fehler? Allgemeine Java-Themen 2
N Prim's Algorithm - wo ist der Fehler? Allgemeine Java-Themen 3
J-Gallus Erste Schritte Wahrscheinlich Anfänger Fehler beim rechnen. Falsches Ergebnis. Allgemeine Java-Themen 9
M Line-Fehler Allgemeine Java-Themen 8
U Input/Output Warum wirft mir das Programm diesen Fehler? Allgemeine Java-Themen 6
RalleYTN Merkwürdiger Fehler mit JFrame im Vollbild Allgemeine Java-Themen 4
V AudioInputStream Fehler Allgemeine Java-Themen 1
J Interpreter-Fehler Fehler beim Verschlüsseln Invalid AES key length Allgemeine Java-Themen 1
G Fehler mit Vector Allgemeine Java-Themen 3
F Java Fehler "buildTableModel" Allgemeine Java-Themen 3
F Fehler in Zeile in Log schreiben Allgemeine Java-Themen 6
DanielsLPecke Input/Output Arduino komischer Fehler. Allgemeine Java-Themen 38
V JavaFX Fehler beim Starten einer Jar Allgemeine Java-Themen 7
S Hashtable Fehler Allgemeine Java-Themen 14
S Zwei String vergleichen, Fehler markieren Allgemeine Java-Themen 3
C Hilfe bei einer Fehler meldung Allgemeine Java-Themen 3
K Was ist mein Fehler? Allgemeine Java-Themen 2
Tausendsassa Compiler-Fehler Fertiges Programm mit Fehler Allgemeine Java-Themen 10
B Eclipse Nach Export einer .jar Fehler: Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 5
K Fehler beim erstellen von .jar Datei Allgemeine Java-Themen 3
P Java Fehler auf Win2008 Server java.io.FilePermission IE8 Version JRE 1.7.0_51 Allgemeine Java-Themen 7
M Eclipse - Fehler: Hauptklasse de.xyz.init.MeineKlasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 2
Seikuassi Swing Stehe auf dem Schlauch...(BufferedReader_Writer-Fehler?) Allgemeine Java-Themen 4
M Eclipse Fehler beim Installieren des Plugins "Jigloo" Allgemeine Java-Themen 12
A Eclipse - Fehler beim "RUN" - "Unable to Launch - The selection cannot be launched" Allgemeine Java-Themen 6
B Fehler bei einem Programm Allgemeine Java-Themen 10
F HILFEEEEEE JAVA Fehler - Tiny Umbrella Allgemeine Java-Themen 1
N JavaFX IndexOutOfBounds-Fehler Allgemeine Java-Themen 11

Ähnliche Java Themen

Neue Themen


Oben