# Problem mit Hintergrund bei JAVA Applet



## lcv (29. Okt 2009)

Hallo, 
ich habe folgendes Problem. Ich will in einem Java Applet ein Hintergrundbild einfügen.
Irgendwas habe ich aber Falsch. 
Hier mein Quelltext.



```
import java.awt.*;
import javax.swing.*;

public class Test extends JApplet 
{
    Image bild;

    public void init()
    {
        bild = getImage(getCodeBase(), "bild.jpg");
    }
   
    public void paint(Graphics g)
    {
        g.drawImage(bild,400,400,500,500,this);

    }

}
```


Wo ist mein Fehler?

Vielen Dank schonmal!

Gruß lcv


----------



## faetzminator (29. Okt 2009)

Kommt eine Fehlermeldung? Vielleicht beim Versuch das Bild zu laden?


----------



## lcv (29. Okt 2009)

Nein es kommt leider keine Fehlermeldung. Und normal wenn das Bild nicht geladen werden könnte,müsste ja im Applet auch ein roter Rahmen sein. Aber er übergeht das total. Es wird gar nichts angezeigt. 
Vielen Dank für die schnelle antwort.


----------



## faetzminator (29. Okt 2009)

Auch in der Java Console deines Browsers nicht? (im IE6 unter Extras -> Sun Java Console; im FF3.5 finde ich sie gerade nicht)
Wieso sollte da ein roter Rahmen sein? Wir sprechen nicht von einer vom IE angezeigten Page sondern von einer eingebetteten Java App...


----------



## lcv (29. Okt 2009)

Also ich hab beim Firefox geschaut. Da gibts den Punkt JAVA Console. 
Der ist aber grau deaktiviert. Ich kann die Console quasi gar nicht starten!
Bin noch ganz neu dabei mich mit Applets zu beschäftigen. Deswegen habe ich noch nicht so ganz viel Ahnung davon. 

Gibt es denn noch eine andere Möglichkeit ein Bild als Hintergrund im Applet einzufügen?


----------



## faetzminator (29. Okt 2009)

Hast du keinen anderen Browser, in dem es du versuchen kannst? Ansonsten starte das Jar mal über die cmd.exe / Shell.
In Firefox sollte sich mit [ctrl]+[shift]+[o] die Java Console öffnen lassen, zumindest habe ich diesen Eintrag in der Web Developer Toolbar mit jenem Shortcut.
Zum Hintergrundbild: Let me google that for you


----------



## lcv (29. Okt 2009)

Es öffnet keine JAVA Console. Auch mit der Tastenkombination. Im IE das gleiche Problem.


----------



## lcv (29. Okt 2009)

Jetzt hab ichs hinbekommen! In der Console ist keine Meldung!
Ich könnte echt durchdrehen. Das Bild ist in gleichen Ordner wie die restlichen Dateien!
Hab keine Ahnung was ich falsch machen..


----------



## faetzminator (29. Okt 2009)

Wenn kein Error angezeigt wird, musst du hier wohl oder übel auf einen GUI / Applet Crack warten, da kann ich dir nicht weiterhelfen.


----------



## MiDniGG (29. Okt 2009)

Änder doch mal die Koordinaten für das Bild... Oder zieh das Fenster so groß, dass Du das Bild siehst... 

400, 400 als Startpunkt ist etwas arg, oder?! Oder vertu ich mich grad mit den Angaben (Zu faul in der API zu schaun)...


----------



## lcv (29. Okt 2009)

Hab ich auch gemacht! Ändert aber nix. Ich brauche echt nur ein Applet mit Hintergrundbild drin!

Das muss doch irgendwie gehen oder?


----------



## Nader (29. Okt 2009)

lcv hat gesagt.:


> Hab ich auch gemacht! Ändert aber nix. Ich brauche echt nur ein Applet mit Hintergrundbild drin!
> 
> Das muss doch irgendwie gehen oder?



so:

```
import java.awt.*;
import javax.swing.*;
 
public class Test extends JApplet 
{
    Image bild;
 
    public void init()
    {
        bild = getImage(getCodeBase(), "bild.jpg");
    }
   
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);

        g.drawImage(bild,400,400,500,500,this);
 
    }
 
}
```


----------



## L-ectron-X (29. Okt 2009)

MiDniGG's Einwand hat Potenzial. Zeige auch mal den Code deiner HTML-Datei.


----------



## lcv (29. Okt 2009)

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Zebrastreifen Applet</title>
    </head>
    <body>
        <h1>Zebrastreifen Applet</h1>
        <hr>
        <applet code="Zebrastreifen.class" 
            width=500 
            height=500
            codebase="."
            archive="file:/C:/BlueJ/lib/bluejcore.jar,file:/C:/BlueJ/lib/junit.jar,file:/C:/Users/Lena/Desktop/Zebrastreifen/"
            alt="Your browser understands the &lt;APPLET&gt; tag but isn't running the applet, for some reason."
         >


			<param name = "img" value = "bild.jpg">

        </applet>
        <hr>
    </body>
</html>



Ist da was falsch?

hab das <param name = "img" value = "bild.jpg"> hinzugefügt gehabt!

Vielen Dank für die Hilfe


----------



## lcv (29. Okt 2009)

Bei dem Vorschlag von Nader kommt ein Fehler an folgender Stelle:

        super.paintComponent(g);


----------



## MiDniGG (29. Okt 2009)

Was für ein Fehler kommt denn? 
Oder hast Du wieder keine Ausgabe?


----------



## lcv (29. Okt 2009)

Can not find symbol - method paintComponent(java.awt.graphics)


----------



## MiDniGG (29. Okt 2009)

Hm. Also habs jetzt mal getestet... Bei mir geht's. Allerdings mit paint und nicht paintComponent...
Und das Bild liegt im selben Ordner wie die Java-Datei?
Kannst Dir ja mal getCodeBase() ausgeben lassen und schaun ob das Bild auch an dieser Stelle liegt...


----------



## Nader (29. Okt 2009)

lcv hat gesagt.:


> Can not find symbol - method paintComponent(java.awt.graphics)



sorry, habe versehen, dass du Applet hast! da ist doch die Methode paint(Graphics g) die Richtige. Ich glaube, dass du dein Image nicht richtig ladest.

Wie sieht denn die Methode getImage() bei dir aus?


----------



## lcv (29. Okt 2009)

Also das Bild liegt im selben Ordner. 
Müsste also gefunden werden. Wie kann ich mir das ausgeben lassen?


----------



## L-ectron-X (29. Okt 2009)

Probiere mal folgendes:

```
import java.awt.*;
import javax.swing.*;

public class TestApplet extends JApplet {
   private Image img;


   public void init() {
      img = getImage(getCodeBase(), "EinBild.jpg");
   }

   public void paint(Graphics g) {
      if(img != null) {
         g.drawImage(img, 0, 0, img.getWidth(this), img.getHeight(this), this);
      }
      else {
         g.drawString("Bild nicht geladen!", 10, 10);
      }
   }
}
```


```
<html>
<head><title>TestApplet mit Bild</title></head>
<body>
<applet code="TestApplet.class" width="400" height="300">
</applet>
</body>
</html>
```

Das Bild legst du ins Verzeichnis deiner .class-Datei.


----------



## Nader (29. Okt 2009)

lcv hat gesagt.:


> Also das Bild liegt im selben Ordner.
> Müsste also gefunden werden. Wie kann ich mir das ausgeben lassen?



so:



```
public class Test extends JApplet {
	Image bild;

	public void init() {
		bild = getImage(Test.class.getResource("bild.jpg"), "bild.jpg");
	}

	public void paint(Graphics g) {
		g.drawImage(bild, 400, 400, 500, 500, this);

	}
}
```


----------



## lcv (29. Okt 2009)

setLayout(new FlowLayout());

        JLabel l = new JLabel();    
        Checkbox c1 = new Checkbox("Keine Fussgänger");
        add(c1);

        Checkbox c2;
        c2 = new Checkbox("Ein Fussgänger");
        add(c2);

        add(new Checkbox("Mehrere Fussgänger"));


Hab aber noch ne andere Frage! Wie mach ich hier bei der Checkbox das man maximal eine option auswählen kann?

Vielen Dank!


----------



## MiDniGG (29. Okt 2009)

Falschen Thread erwischt? -.-'

Edit: Oder passt das mit dem Bild jetzt???

Edit²: -.- CheckboxGroup (Java 2 Platform SE 5.0)


----------



## Michael... (29. Okt 2009)

lcv hat gesagt.:


> setLayout(new FlowLayout());
> 
> JLabel l = new JLabel();
> Checkbox c1 = new Checkbox("Keine Fussgänger");
> ...


Dafür verwendet man eigentlich RadioButtons How to Use Buttons, Check Boxes, and Radio Buttons (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)

Ausserdem sollte man AWT (CheckBox) und Swing (JLabel) nicht mischen


----------



## Nader (29. Okt 2009)

lcv hat gesagt.:


> ..
> Hab aber noch ne andere Frage! Wie mach ich hier bei der Checkbox das man maximal eine option auswählen kann?
> 
> Vielen Dank!



ist jetzt das Problem mit Applet Hintergrund gelöst?? Für Forumleser wäre interressant zu erfahren, ob ein Lösungsvorschlag das Problem gelöst hat!
Für die andere/neue Probleme solltest du einen neuen Thread aufmachen.


----------



## lcv (29. Okt 2009)

Ja das Problem ist gelöst. Problem war das Bild selber! Der Code war in Ordnung!
Das Bild hatte eine Auflösung von 4000x3000 Pixel.
Ist mir auch erst später aufgefallen. 
Das war dann einfach zu viel!
Danke für die tolle Hilfe.
Gruß
LCV

Achso wir kann man das Thema schließen. Also die Frage schließen??


----------



## L-ectron-X (29. Okt 2009)

Du klickst auf den Knopf neben _Antworten_.


----------

