Java Applett weißes Feld

Hi,

wenn ich im Java-Editor eine Linie programmieren will und sie anschließend nach dem compilieren im Applet-Viewer (oder wahlweise im Browser) anschauen will, seh ich lediglich ein weißes Feld. Weiß echt nicht wo mein Fehler ist.

Beim Compilieren wird kein Fehler angezeigt.

Der Code ist wie folgt:

Code:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 08.10.2008
  * @author
  */

public class logo1 extends Applet {
  // Anfang Attribute
  // Ende Attribute

  public void init() {
    Panel cp = new Panel(null);
    cp.setBounds(0, 0, 300, 300);
    add(cp);
    // Anfang Komponenten

    // Ende Komponenten

  }
  // Anfang Methoden
    public void paint (Graphics stift)  {
  stift.drawLine (25,55,65,55);
  }

  // Ende Methoden

}
 
Also so beim schnellen Überfliegen deines Codes frage ich mich, wo du die paint-Methode aufrufst. Du erstellst doch nur das Panel und das wars.
 
Code:
   // Anfang Methoden
    public void paint (Graphics stift)  {
  stift.drawLine (25,55,65,55);
  }

  // Ende Methoden

Da hatte ichs drin. Ich muss sagen das ich noch nen Anfänger in Sachen Java bin, aber eigentlich müsste es so funktionieren..
 
Nein, da sagst du nur, was die Methode macht. Du musst diese aber auch noch aufrufen. Ich habe noch nie mit Applets gearbeitet, von daher weiß ich grad nicht, ob diese auch eine Main-Methode haben, aber du könntest es bestimmt zum testen mal in der init aufrufen. Ich kann dir jetzt aber auch gerade nicht sagen, ob du das Panel als Graphics übergeben kannst oder ob du da noch andere Sachen für erstellen musst.
Hast du nicht zufällig ein Buch oder Tutorial als Vorlage genommen? Da müsstest du das ja sehen. Ansonsten kann ich erst morgen mal nachlesen
 
Code:
java.lang.Object
   extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Panel
              extended by java.applet.Applet
Applet erbt von Component und dieses hat eine paint(Graphics) Methode. Insofern ist der Ansatz, diesen zu überschreiben, gar nicht so falsch.
Die paint(Graphics) Methode wird nämlich jedesmal aufgerufen, wenn das Element neu gezeichnet wird.

Allerdings fügst du dann noch ein (undurchsichtiges) Panel hinzu, dass die Zeichenfläche überlagert.
Du musst also die paint(Graphics) Methode des Panels überschreiben (dann malst du auf dem Panel), oder du lässt das Panel weg und malst auf dem Applet.

Hier ein Besipiel, wie du die paint-Methode des Panels überschreiben kannst:
Code:
public void init() {
    Panel cp = new Panel(null) {
      public void paint (Graphics stift)  {
        stift.drawLine (25,55,65,55);
      }
    };
    cp.setBounds(0, 0, 300, 300);
    add(cp);
  }

mfg, metax.
 
Zurück
Oben