Hitergrund nach reload

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Hitergrund nach reload

    Hallo,
    (Es geht um Java)
    Ich habe jetzt 2 Tage damit verbracht, ein Hintergrundbild in JPanel einzubauen. Heute habe ich es geschafft, aber dann habe ich gemerkt, das dass Hintergrundbild erst angezeigt wird, wenn ich ein Reload im Browser mache. Vorher ist der Hintergrund nur so leicht grau.

    Das Bild, das im Hintergrund ist, liegt auf meinem lokalen Apache wie auch die Signierte .jar Datei mit der .class Datei drin.

    Weiss jemand was ich verändern muss, das dass Hintergrundbild beim ersten anzeigen des Applet's schon angezeigt wird?

    Code:
    import java.awt.*;
    import java.net.MalformedURLException;
    import javax.swing.*;
    
    /**
     *
     * @author Rolandbar
     */
    public class woemap extends JApplet {
        Image img;
        Image img2;
       
        public void init()
        {
            try     {
                img = java.awt.Toolkit.getDefaultToolkit().getImage(new java.net.URL(getCodeBase().toString()+"map.gif"));
                img2 = java.awt.Toolkit.getDefaultToolkit().getImage(new java.net.URL(getCodeBase().toString()+"nichts.gif"));
                java.awt.MediaTracker track = new java.awt.MediaTracker(this);
                track.addImage(img, 0);
            }
            catch (MalformedURLException ex) {
                System.err.println("Grafik nicht vorhanden!");
                return;
            }
    
    
            JPanel panel = new JPanel() {
                protected void paintComponent(Graphics g) {
                    super.paintComponent(g);
                    g.drawImage(img, 0, 0, null);
                    g.drawImage(img2, 320, 0, null);   
                }
    
            };
            panel.setLayout(new FlowLayout());
            
            add(panel, BorderLayout.CENTER);
        }
    }
    Zuletzt geändert von Rolandbar; 26.04.2007, 11:28.
    Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

  • #2
    sieht gut aus, aber jetzt musst du debuggen. und zwar würde ich an deiner stelle wissen wollen, ob das Image objekt bereits beim ersten aufruf angefordert wird (http sniffer) und bereitsteht (testausgaben). evtl. hast du an dem java.awt.MediaTracker etwas falsch gemacht.

    Kommentar


    • #3
      Danke für den Tipp mit dem MediaTracker.
      Nachdem ich folgendes nach track.addImage(...); eingefügt hatte, ging es auf einmal.
      Code:
      track.waitForAll();  // warte, bis alle Bilder geladen wurden
      if(track.isErrorAny())
      {  // mache ausgabe in Konsole für debugging, wenn fehler
            System.err.println("Fehler beim laden der Bilder!");
            return;
      }
      Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

      Kommentar

      Lädt...
      X