# Bild über Applet aussuchen und auf Serverladen



## Fjoergyn (14. Nov 2006)

Hi,

ich hab folgende Frage:
Wie kann ich innerhalb eines Appletts ein Bild von der Platte auswählen (I), im Applet anzeigen (II) und an einen Server hochladen (III)?
Hab schon div. Tutorials durchgesehn aber nix gefunden.
Vielleicht weiß hier einer Rat...

Ciao,
Fjoergyn


----------



## Wildcard (14. Nov 2006)

Dazu muss das Applet signiert sein, sonst kannst du nicht auf die Festplatte des Users zugreifen.
Das Hochladen könntest du zum Beispiel über FTP realisieren.


----------



## Fjoergyn (15. Nov 2006)

Wildcard hat gesagt.:
			
		

> Dazu muss das Applet signiert sein, sonst kannst du nicht auf die Festplatte des Users zugreifen.
> Das Hochladen könntest du zum Beispiel über FTP realisieren.



I. Wie läuft das mit dem Signieren? ist das n Codewort oder sowas wie ein Zertifikat
II. Der Webspace hat FTP, das ist nP. Aber wie bau ich über das Applet ne Verbindung auf? Ich hab FTP bisher nur über spez. Software verwendet.


----------



## L-ectron-X (15. Nov 2006)

Zu 1. guckst du mal in die FAQ.
Zu 2. gibts schon vorgeferigte Bibliotheken die du einbinden kannst. :arrow: Google.


----------



## Fjoergyn (15. Nov 2006)

Super, danke für die Tipps sowei. Nur eins noch: in der FAQ steht das das Applats signieren nur bis 1.4.x geht? Wie läuft die ganze Geschichte in 1.5.x?


----------



## L-ectron-X (15. Nov 2006)

Hm, hab ich wohl vergessen, den Link mal zu aktualisieren. In Java 1.5 gehts genauso.


----------



## Fjoergyn (18. Nov 2006)

Hmm, wie schaff ich es, das nach einem Buttonklick ein Auswahlfenster erscheint mit dem ich meine Platte nach einem Bild durchsuchen kann , welches dann im Applet angezeigt wird?


----------



## Wildcard (18. Nov 2006)

Am einfachsten mit einem JFileChooser.


----------



## L-ectron-X (18. Nov 2006)

Eine funktionsfähige Beispiel-Applikation findest du mit der Forumsuche. Suchbegriff "Bildbetrachter"


----------



## Fjoergyn (20. Nov 2006)

Hab dein Programm ausprobiert. Nur gibt mir javac Fehlermeldugen in Bildbetrachter.java und Timer.java: 







Wenn ich nun die Diashow rausschneide, kann ich zwar problemlos kompilieren, allerdicht läd dann das Applat nicht ( weder Browser, noch AppletViewer,  FAQ dazu schon gelesen )
Fehlermeldungen:

Laden: Instanz von Bildbetrachter.class kann nicht erstellt werden.
java.lang.InstantiationException: Bildbetrachter
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at sun.applet.AppletPanel.createApplet(Unknown Source)
	at sun.plugin.AppletViewer.createApplet(Unknown Source)
	at sun.applet.AppletPanel.runLoader(Unknown Source)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Hab schon im Netz nach dieser Exeption gesucht, bin aber nicht wirklich schlauer bei rausgekommen....


----------



## L-ectron-X (21. Nov 2006)

Was ich da gepostet habe ist kein Applet, sondern eine Applikation. Sie lässt sich normalerweise fehlerlos kompilieren und funktioniert problemlos.
Die von dir beschriebene Exception wird geworfen, weil du dem AppletViewer bzw. dem Browser versuchst eine Applikation vorzusetzen.
Alle Klassen müssen sich zum Zeitpunkt der Kompilierung in jeweils eigenen Dateien befinden und in einem gemeinsamen Verzeichnis zu finden sein.
Ich habe dir diesen Code zu Ansicht vorgeschlagen weil er relativ klein und überschaubar ist. Ein Teil deiner Fragen werden durch ihn beantwortet.


----------



## Fjoergyn (22. Nov 2006)

L-ectron-X hat gesagt.:
			
		

> Alle Klassen müssen sich zum Zeitpunkt der Kompilierung in jeweils eigenen Dateien befinden und in einem gemeinsamen Verzeichnis zu finden sein.



Das sind sie ja. Trotdem findet Timer die Diashow-Klasse nicht ...



			
				L-ectron-X hat gesagt.:
			
		

> Was ich da gepostet habe ist kein Applet, sondern eine Applikation. Sie lässt sich normalerweise fehlerlos kompilieren und funktioniert problemlos.
> Die von dir beschriebene Exception wird geworfen, weil du dem AppletViewer bzw. dem Browser versuchst eine Applikation vorzusetzen.



Ich setzt dem Browser ja nicht nackte java oder class vor, sonder Binde das ganze natürlich vorher in ne html ein...


----------



## L-ectron-X (23. Nov 2006)

Fjoergyn hat gesagt.:
			
		

> Das sind sie ja. Trotdem findet Timer die Diashow-Klasse nicht ...


Wie kompilierst du? Manchmal meckert, der Compiler, wenn man ihm die falsche Klasse zuerst vorsetzt.
Also kompiliere die Klasse mit der main()-Methode (zuerst).



			
				Fjoergyn hat gesagt.:
			
		

> Ich setzt dem Browser ja nicht nackte java oder class vor, sonder Binde das ganze natürlich vorher in ne html ein...


Ja, und das geht eben nicht mit einer Applikation. Nur Applets lassen sich in HTML-Seiten einbetten.


----------



## Fjoergyn (23. Nov 2006)

Bildbetrachter.java -> Diashow.java -> Timer.java

Er meckert schon beim Bildbetrachter rum das er Timer und Diashow nicht findet, obwohl sie im sleben Ordner sind und auch keine Rechtschreibfehler enthalten ...


Neuerding erhalte ich auch folgendes wenn ich n Prog ausführen will, was 100% richtig ist:
"Exeption in thread "main" java.lang.noClassDefFoundError: <<Progname>>"

Aus der FAQ:
Die Klasse muss als public gesetzt sein. z.B. public class MeineKlasse <- Hast du ja schon auf public gesetzt

Die Classpath - Umgebungsvariable muss den Ordner der Klasse bzw. des Pakets enthalten. <- Hab n festen Wert: CLASSPATH C:\Bildbetrachter\   ... da sind die Dateinen drin

Wenn die Klasse in einem Paket ist, muss sie überden Paketnamen aufgerufen werden, z.B. java paket.Klasse <- Auch nicht der Fall

Der Aufruf der Datei erfolgt ohne die Dateiendung ".class" <- Auch nciht der Fall

 :cry:


----------



## Fjoergyn (23. Nov 2006)

OK

habs geschafft:
mit "java -cp . Dateiname"

Has Prog läuft nun soweit - wunderbar, aber halt ohne Diashow, was aber egal ist ...

werd mich nun ma schlau machen wie man ein funktionierendes Applet erstellt...

Dachte bisher immer das du einem Applet immer ne *.class Applikation geben kannst das die dann einfach im Browser aufgeführt wird ... aber anschinend ist dem nicht so...


----------

