2009-08-23 20 views
1

Ich bin neu in Java Applet s. Ich habe ein Problem beim Neuladen des Applets. Wenn ich das Applet-Fenster verkleinere oder eine andere Anwendung öffne und dann zum Applet zurückkehre, wird der Inhalt auf dem Bildschirm neu gezeichnet. Grundsätzlich wird meine paint Methode aufgerufen. Ich möchte, dass der Inhalt der Methode paint nur einmal aufgerufen wird. Wie kann ich das erreichen? Kann mir bitte jemand dabei helfen?Problem mit Java Applet

Vielen Dank im Voraus.

Antwort

3

Sie missverstehen, wie paint funktioniert - Sie haben keine echte Kontrolle darüber, wie oft es heißt. Was machst du in der paint Methode, die dich glauben lässt, dass du es nur einmal tun willst und warum ist es ein Problem, dass es wieder aufgerufen wird?

Wenn Sie sich Sorgen machen über Flackern, dann möchten Sie vielleicht in einen Puffer malen. Code, der nicht direkt mit dem Malen in Zusammenhang steht, sollte nicht in der paint Methode sein. Sie können eine andere Initialisierungslogik in die Applet start Methode setzen

0

Wenn Sie Initialisierungscode in die Paint-Methode setzen, könnten Sie darüber nachdenken, es stattdessen in die Init-oder Start-Methoden zu setzen.

Die Phrase, nach der Sie suchen würden, ist applet lifecycle.

0

Ich bin neu in Java-Applet-Design und, wenn es mich zum Laufen bringe ein Problem, dass "kein Haupt"

hier sagt mein Code:

import java.applet.*; 
import java.awt.*; 
public class abhidev extends Applet { 

    /** Initializes the applet abhidev */ 
    public void init() { 
     try { 
      setBackground(Color.cyan); 

     } 
     catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 
    public void paint(Graphics g){ 
     try{ 
      g.drawString("this ais an applet window",10,30); 
      showStatus("this is astatus window"); 
     } 
     catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 

Der Applet Klassenname ist: abhidev.java .

+0

Das sieht wie ein separates Problem aus. Bitte posten Sie es als eigene Frage, indem Sie auf die Schaltfläche [Frage stellen] (http://stackoverflow.com/questions/ask) klicken. – brainimus