problem mit bildanzeige in applet und main

Status
Nicht offen für weitere Antworten.

roberlin

Mitglied
hallo!

ich versuche in einem applet ein bild anzeigen zu lassen, hab schon alles auffindbare im forum gelesen, alle tips klappen nicht, hier eine variante, die ich versucht habe:

Code:
package birthday;


import java.awt.*;
import java.applet.*;

public class LoadImgAppl extends Applet {

	    public void paint( Graphics g ) {
	        Image bild;

	        bild = getImage( getCodeBase(), "birthday-cake2.jpg" );
	        g.drawImage( bild, 0, 0, this );

	    }
}

applet startet, zeigt aber nischt an!

das bild ist im selben package/verzeichnis wie die Klasse LoadImgAppl. liegt es vielleicht daran, dass ich das in eclipse auf meinem lokalen system starte und getDocumentBase() dann vielleicht nicht geht? was muss ich tun?

habe dann eine andre lösung mit ner main ausm internet getestet, aber auch hier startet das programm, zeigt aber nichts an! hier der code dafür:

Code:
package birthday;

import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;

/**
 * This class demonstrates how to load an Image from an external file
 */
public class LoadImgMain extends Component {

	private static final long serialVersionUID = 1L;
	BufferedImage img;

    public void paint(Graphics g) {
        g.drawImage(img, 0, 0, null);
    }
    public LoadImgMain() {
       try {
           img = ImageIO.read(new File("strawberry.jpg"));
       } catch (IOException e) {
       }
    }
    public Dimension getPreferredSize() {
        if (img == null) {
             return new Dimension(100,100);
        } else {
           return new Dimension(img.getWidth(null), img.getHeight(null));
       }
    }
    public static void main(String[] args) {

        JFrame f = new JFrame("Load Image Sample");
            
        f.addWindowListener(new WindowAdapter(){
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
        f.add(new LoadImgMain());
        f.pack();
        f.setVisible(true);
    }
}

an rechnereinstellngen kann es eigtl nicht liegen, habe es über eclipse auf mehreren rechnern getestet, wo sonst alles geht.

ursprünglich wollte ich es ja innerhalb eines gridlayouts anzeigen lassen, mittlerweile wär ich froh, wenns überhaupt geht...

hab auch schon mit andren jpg's getestet und mit nem gif, bildgrößen waren 100 * 100 py, beim andren 150 * 111 px

nach allem, was ich im internet gefunden habe, soltle es damit ohne weiteres zutun klappen, woran liegts nur?

hab überlegt, ob das mit der applet-einbindung in html zusammenhängen könnte, aber zum starten wird ja die html von eclipse generiert und sollte damit ok sein, zumindest sollte es dann ja mit der main gehen...

vielen, vielen dank, falls mir jemand helfen kann! grüße
 
viell liegt die bilddatei im falschen ordner? hab die klassen in eclipse im package "birthday" liegen. in der ordnerstruktur sehr ich diese dann auch im workspace im projekt im entsprechenden ordner "birthday". da habe ich die datei dann auch reingelegt, sodass diese doch dann einfach mit dem namen ohne weitere pfadangabe aufgerufen werden kann, so wie im code oder ist da was falsch??
 
Von wo startest du denn das Applet? Wenn du es hinterher auf dem Server hast und von deinem lokalen Rechner starten willst, funktioniert das sowieso nicht, weil das Applet versucht auf den lokalen Rechner zuzugreifen und das darf es standartmßig nicht. Du müsstest dann mit Streams arbeiten. Vielleicht geht auch der komplette pfad des bildes auf dem server, aber ich glaube nicht.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben