hallo,
ich versuche verzweifelt ein Bild in ein Java Applet einzufügen. Kann mir jemand helfen? habe bereits beispiele etc. gefunden, konnte sie jedoch nicht in mein Projekt übernehmen.
Lasse den Code jetzt mal aus. kann ihn nachträglich noch posten wenn jemand helfen kann bzw. möchte.
So müsste das funktionieren.
import java.awt.*;
import java.applet.*;
public class BildInAppletTester extends Applet{
private Image img;
public void init(){
img = getImage(getCodeBase(),"meinTollesBild.gif"); // Der Variable "img" wird ein Bild zugewiesen
}
public void paint(Graphics g){
g.drawImage(img, 0,0, this); // Das Bild wird ausgegeben
}
}
Edit: Privatisierung von ehemaligem Allgemeineigentum
Wär ganz nett img als private zu deklarieren.
Upps, wie peinlich. Sofort korrigiert!
Das hast Du fein gemacht! Jetzt fehlen nur noch Kommentare und Vertragsmodell für den Haken [img]
http://www.fb18.de/gfx/25.gif[/img]
Ruhe in Klein-Bursien! [img]
http://www.fb18.de/gfx/24.gif[/img]
Müsste man für einen Haken nicht auch noch eine Testklasse schreiben, die mindestens 3x so groß ist, wie die zu testende Klasse?
[img]
http://www.fb18.de/gfx/28.gif[/img]
In P3 reicht eine "normale" (sprich: not(JUnit)) Klasse zu schreiben, die einfach eine Instanz von der zu testenden Klasse macht und bei der man dan Methoden ausführt und prüft, ob es richtig ist. In unserem Fall reicht es vollkommen, ein Testbild abzubilden, welches man unter
www.inf[…].de\P3\Übung\TollerOrdnerFuerTestbildDenEsAberInWirklichkeitGarNichtGibt\ImaginaeresTestbild finden kann.
Wenn sie den Ordner nicht finden kaufen sie sich bitte eine (weitere) Brille.
Punkte: -5
Tomek[img]
http://www.fb18.de/gfx/25.gif[/img]
So müsste das funktionieren.
import java.awt.*;
import java.applet.*;
public class BildInAppletTester extends Applet{
private Image img;
public void init(){
img = getImage(getCodeBase(),"meinTollesBild.gif"); // Der Variable "img" wird ein Bild zugewiesen
}
public void paint(Graphics g){
g.drawImage(img, 0,0, this); // Das Bild wird ausgegeben
}
}
Edit: Privatisierung von ehemaligem Allgemeineigentum
mein Programm sieht genau gleich aus. Kannst du mir noch nen Auszug aus dem HTML-Code einfügen? Vielleicht liegt dort der Fehler. Ich kann mirs langsam nicht mehr erklären wo der Fehler liegt. Kann es sein, dass mein Bild zu gross ist? habe bisher keine Grenze gefunden. Irgendwo ist gestanden, dass es halt einfach länger geht zum laden wenn das Bild gross ist. Ich habe das Bild ausserdem im selben Ordner abgespeichert wie das .java und das .html file. das ollte doch richtig sein oder?
ach ja danke für die Unterstützung auch wenn ich noch nicht weiter gekommen bin.
Jetzt fehlen nur noch Kommentare
Da
fehlen noch Kommentare? Wäre das nicht Quelltext zu Schulungszwecken, dann wären die beiden Kommentare bereits zu viel. Die sind so unnütz wie
i++; // Erhöhe i um eins
LEIFer
mein Programm sieht genau gleich aus. Kannst du mir noch nen Auszug aus dem HTML-Code einfügen? Vielleicht liegt dort der Fehler. Ich kann mirs langsam nicht mehr erklären wo der Fehler liegt.
Poste doch mal dein HTML-File. Vielleicht liegt es ja daran.
ja mach ich sobald ich zu hause bin am mittag.
Ich weiß nicht, ob das APPLET-Tag inzwischen veraltet ist und durch das OBJECT-Tag ersetzt wurde, ich meine mich zu erinnern, dass damit irgendwas war. Funktioniert aber trotzdem noch. [img]
http://www.fb18.de/gfx/25.gif[/img]
<HTML>
<HEAD>
<TITLE>TollerTitel</TITLE>
</HEAD>
<BODY>
Belangloser Beispieltext
<APPLET code="BildInAppletTester.class" width="100" height="100">
</APPLET>
Noch mehr belangloser Text
</BODY>
</HTML>
Jetzt fehlen nur noch Kommentare
Da fehlen noch Kommentare? Wäre das nicht Quelltext zu Schulungszwecken, dann wären die beiden Kommentare bereits zu viel. Die sind so unnütz wie
i++; // Erhöhe i um eins
LEIFer
Och, wir wissen doch alle ganz genau, dass Kommentare der Art
//*
*Setzt den String name neu
*@param String ein String
*/
für
"pubic void stetzeName(String name)
{
this.name=name;
}"
ziemlich unnötig sind, was aber trotzdem gefordert war.
Tomek
Ich habe das Bild ausserdem im selben Ordner abgespeichert wie das .java und das .html file. das ollte doch richtig sein oder?
Nur zur Sicherheit: das .java nützt dir nicht viel, du musst es kompilieren.
Ich habe das Bild ausserdem im selben Ordner abgespeichert wie das .java und das .html file. das ollte doch richtig sein oder?
Nur zur Sicherheit: das .java nützt dir nicht viel, du musst es kompilieren.
jaja weiss ich mit Xcode wird das beim starten automatisch kompiliert. Das Applet startet auch. Ich sehe nur kein Bild.
jaja weiss ich mit Xcode wird das beim starten automatisch kompiliert. Das Applet startet auch. Ich sehe nur kein Bild.
Ein "Schuss im Dunkeln": gibts bei Applets nicht ein recht restriktives Sicherheitsmodell? Darf ein Java Applet ueberhaupt Dateien vom ausführenden Rechner laden?
jaja weiss ich mit Xcode wird das beim starten automatisch kompiliert. Das Applet startet auch. Ich sehe nur kein Bild.
Achte darauf, dass "width" und "height" in der HTML-Datei Werte zugewiesen bekommen, die mindestens so groß wie das Bild sind. Wenn du mehrere Bilder hast (oder sonst noch mehr ausgibst), dann entsprechend vergrößern. Ruhig mal großzügig beiden Attributen die Werte 1000 oder 10000 geben und gucken, ob es funktioniert.
Ein "Schuss im Dunkeln": gibts bei Applets nicht ein recht restriktives Sicherheitsmodell? Darf ein Java Applet ueberhaupt Dateien vom ausführenden Rechner laden?
Jap, gute Idee. Wenn das ganze nicht vom Webserver kommt, wuerd ich auch dort den Fehler vermuten.
Es kann auch sein, dass das Bild noch gar nicht fertig geladen ist.
AFAIR wird das Bild in einem extra Thread geladen - wenn das Bild bei der Darstellung noch nicht da ist, wird einfach nix dargestellt.
Zum Warten auf das Laden des Bildes gibt es eine Klasse, die MediaTracker (oder so ähnlich) heißt. Vielleicht ist das das Problem?
Jap, gute Idee. Wenn das ganze nicht vom Webserver kommt, wuerd ich auch dort den Fehler vermuten.
getImage(getCodeBase(),"meinTollesBild.gif");
Laed das Bild tatsaechlich vom Webserver, sollte das Applet also zulassen. Schonmal probiert das Bild direkt im Browser zu laden? Vielleicht hat der Webserver keine Lese-Berechtigung…
Och, wir wissen doch alle ganz genau, dass Kommentare der Art […] ziemlich unnötig sind, was aber trotzdem gefordert war.
Ja, ich war selber mal Übungs- und Praktikumsleiter, wie ein paar Leute hier [strike] schmerzlich [/strike] entzückt wissen. [img]
http://www.fb18.de/gfx/23.gif[/img]
Ich sehe auch ein, dass solche Trivial-Kommentare manchmal sinnvoll sind, vermeide sie aber weitestmöglich.