Problem mit JApplet bzw Applet

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich wollte mich ein bisschen mit Applets und kleinen Animationen beschäftigen. Hab mit Hilfe eines Tutorials folgenden Code geschrieben:

Code:
import javax.swing.*;
import java.awt.*;


public class Ball extends JApplet implements Runnable
{
	// Initialisierung der Variablen
	int x;	
	int y;	
	int d;

	public void init()
	{
            x = 0;
            y = 80;
            d = 30; 
	}

	public void start ()
	{
		Thread th = new Thread (this);
		th.start ();
	}

	public void stop()
	{

	}

	public void destroy()
	{

	}

	public void run ()
	{
		while (true)
		{
			x ++;
			repaint();

			try
			{
				Thread.sleep (20);
			}
			catch (InterruptedException ex)
			{
			}

		}
	}


	public void paint (Graphics g)
	{
		g.setColor  (Color.blue);
                g.fillOval (x,y,d,d);
	}

}

Das ist also ein einfacher ausgefüllter Kreis der sich von links nach rechts bewegt. Wenn man das Applet ausführt dann zieht der Ball jedoch den Kreis "hinter sich mit" (sozusagen nen Schatten mit sich zieht). Das heisst die repaint() bzw die update() löscht das Bild nicht. Nach stundenlangen versuchen und googlen bin ich dann drauf gekommen das wenn man das

Code:
import javax.swing.*;
import java.awt.*;

public class Ball extends JApplet implements Runnable

durch

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

public class Ball extends Applet implements Runnable

ersetzt, dieser Schatten weggeht.

Warum gibt es da zwischen Applet und JApplet nen unterschied ? Warum löscht die update() das Bild bei JApplet nicht und wie kann ich es evtl "manuell" löschen ?

Danke für eure Hilfe
 

Wildcard

Top Contributor
Geh am besten wieder zur ursprünglichen Variante mit JApplet zurück und änder paint:
Code:
   public void paint (Graphics g)
   {
      //im Falle von Applet wird dadruch lediglich der Hintergrund gereinigt
      super.paint(g);
      g.setColor  (Color.blue);
                g.fillOval (x,y,d,d);
   }

Besser wäre es noch, nicht direkt auf das Applet zu zeichnen, sondern auf eine JComponent oder JPanel.
Bei Swing überschreibst du dann statt paint die paintComponent. update solltest du bei Swing gar nicht überschreiben.
 
G

Guest

Gast
Dankeschön hat gefunzt!

Noch ne dumme Frage hinterher: Warum sollte man auf das Panel zeichnen und nicht direkt aufs Applet ?
 

Wildcard

Top Contributor
Weil man sich direkt angewöhnen sollte paintComponent statt paint zu überschreiben und dazu wird eine lightweight Komponente wie JPanel oder JComponent benötigt (weil ein Applet kein paintComponent hat).
 
G

Guest

Gast
alle guten Dinge sind 3:

1. ok, die Erklärung ist ja einleuchtend nur ist damit die Frage nicht beantwortet. Auf die Gefahr hin dich zu nerven: Ich versteh nicht warum "man sich das angewöhnen soll". Worin besteht mein Vorteil mit einer lightweight component zu arbeiten und damit die paintComponent() benutzen zu "dürfen/können"...

2. mir fehlt noch das Verständnis ( wie man wohl leicht merkt :D ) ..kann man das so vereinfacht sagen?:

paint() -> AWT
repaint (AWT) -> update() -> paint()

paintComponent() -> Swing
repaint (Swing) -> paintComponent()

3. Danke ! :wink:
 

Wildcard

Top Contributor
1. so einfach ist das gar nicht zu beantworten, auch deshalb, weil es nicht falsch ist direkt in einem Frame zu zeichnen.
Das Problem ist aber, das ein Frame ein komplexes Konstrukt aus Dekorator, Rahmen, Fläche und verschiedenen Ebenen ist.
Paint beeinflußt die gesamte Komponente, und deren Kindern, während paintComponent nur die Komponente selbst zeichnen muss und sich um nichts anderes kümmerst.
Der Scope bleibt also auf das nötigste reduziert.
Weiterhin ist es in realen Anwendungen meistens auch gar nicht sinnvoll direkt auf den Frame zu zeichnen, da ein Programm mit Zeichenfläche üblicherweise auch reguläre Widgets enthält. Daher wird der Zeichenbereich i.d.R. in einer eigenen Komponete 'isoliert'.

2. Mach dir nicht zu viele Gedanken darüber. Du musst nur wissen das du in paintComponent zeichnen kannst und das nach repaint() irgendwann die paintComponent aufgerufen wird. Der Rest kommt von selbst :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
8u3631984 Problem auf Github mit Umstellung auf Spring 3 Tools - Maven, Gradle, Ant & mehr 4
H Maven dependency Problem ? Tools - Maven, Gradle, Ant & mehr 23
H Problem beim Verschieben der main-class -> A jni error has occured, please check... Tools - Maven, Gradle, Ant & mehr 9
I Problem: Maven import extern Lib Tools - Maven, Gradle, Ant & mehr 3
S Binding-Problem von Bibliotheken bei Deployment Tools - Maven, Gradle, Ant & mehr 0
L Apache Wicket problem Tools - Maven, Gradle, Ant & mehr 4
L Maven Encoding Problem bei Resourcen Tools - Maven, Gradle, Ant & mehr 3
C Git Problem Tools - Maven, Gradle, Ant & mehr 3
C Kleines Problem mit Maven und Resourcen. Tools - Maven, Gradle, Ant & mehr 3
R IntelliJ IDEA und Git - Problem Tools - Maven, Gradle, Ant & mehr 2
E Ant Problem mit Abhängigkeiten Tools - Maven, Gradle, Ant & mehr 2
GianaSisters Ant jUnit und Ant Problem Tools - Maven, Gradle, Ant & mehr 2
D [maven] problem mit konfiguration von cargo plugin Tools - Maven, Gradle, Ant & mehr 4
D [Maven] problem mit plugin - es fehlen "dubug informationen" Tools - Maven, Gradle, Ant & mehr 8
H Applet Problem mit Security Exception Tools - Maven, Gradle, Ant & mehr 3
M Maven Problem bei Ersetzung von POM-Properties Tools - Maven, Gradle, Ant & mehr 7
M Applet USB Stick Problem Tools - Maven, Gradle, Ant & mehr 3
D Firmen pom mit eigenem Releasezyklus - Problem Tools - Maven, Gradle, Ant & mehr 2
reibi Maven Problem eclipse_eclipse mit Installed JREs Tools - Maven, Gradle, Ant & mehr 6
F Problem beim Kompilieren ohne IDE Tools - Maven, Gradle, Ant & mehr 5
T Maven Problem by crearting a new project with "mvn archetype:create" Tools - Maven, Gradle, Ant & mehr 2
J Ant Ant Skript Problem mit generischen Datentypen Tools - Maven, Gradle, Ant & mehr 8
reibi Maven resources - Problem Tools - Maven, Gradle, Ant & mehr 4
S Webstart Problem beim Start von Webstart Tools - Maven, Gradle, Ant & mehr 4
H Java Applet Problem beim einbinden in HTML Tools - Maven, Gradle, Ant & mehr 3
G Webstart Problem mit Adressierung bei Laden von Datei aus jar (Webstart) Tools - Maven, Gradle, Ant & mehr 5
F Webstart JNLP Problem mit LIB Tools - Maven, Gradle, Ant & mehr 3
A Ant Problem mit classpath Tools - Maven, Gradle, Ant & mehr 8
T Problem mit Maven Assembly ... Tools - Maven, Gradle, Ant & mehr 6
S Problem bei Nutzung einer eigenen EJB in einem Servlet Tools - Maven, Gradle, Ant & mehr 2
V applet Java 1.6 -> 1.5 Problem ... wie mit Ant zu lösen? Tools - Maven, Gradle, Ant & mehr 7
E Java Applet - Double Buffering Problem (Flackern) Tools - Maven, Gradle, Ant & mehr 6
N Problem mit Ant Classpath und Junit: Relative Pfade Tools - Maven, Gradle, Ant & mehr 2
M Dringend: Sehr kompliziertes Applet Problem Tools - Maven, Gradle, Ant & mehr 4
H Problem mit einen Applet Tools - Maven, Gradle, Ant & mehr 5
G Problem beim deployen eines Applets Tools - Maven, Gradle, Ant & mehr 8
G Applet Security Problem Tools - Maven, Gradle, Ant & mehr 3
S Problem mit Webstart Tools - Maven, Gradle, Ant & mehr 5
zilti Problem mit Object-Tag Tools - Maven, Gradle, Ant & mehr 3
zilti Applet einbinden: Problem Tools - Maven, Gradle, Ant & mehr 6
N Problem mit Applets in HTML Seite integrieren Tools - Maven, Gradle, Ant & mehr 3
D JFileChooser Problem - Verzweifelt Tools - Maven, Gradle, Ant & mehr 4
J Problem beim schreibenden Dateizugriff Tools - Maven, Gradle, Ant & mehr 7
R problem mit kollision von objekten Tools - Maven, Gradle, Ant & mehr 5
G 2 Problem mit dem ScrollPane Tools - Maven, Gradle, Ant & mehr 2
D Properties File FileInputStream Problem Tools - Maven, Gradle, Ant & mehr 2
B Permissions Problem mit zwei Applets Tools - Maven, Gradle, Ant & mehr 2
P Problem beim Senden einer Datei Tools - Maven, Gradle, Ant & mehr 5
E Problem mit signiertem Applet und Parametern Tools - Maven, Gradle, Ant & mehr 4
C drawImage Problem und Applet not inited Tools - Maven, Gradle, Ant & mehr 7
B Server Problem mit Applet start Tools - Maven, Gradle, Ant & mehr 8
V komisches Problem mit Eclipse - oberste Pixel verdeckt Tools - Maven, Gradle, Ant & mehr 3
U JTextPane Problem Tools - Maven, Gradle, Ant & mehr 15
M Applet JRE Versions Problem Tools - Maven, Gradle, Ant & mehr 3
G Problem mit dem schreiben von Datein auf einem Server Tools - Maven, Gradle, Ant & mehr 11
G Web start problem Tools - Maven, Gradle, Ant & mehr 9
X Problem mit Bilder laden Tools - Maven, Gradle, Ant & mehr 3
J Laufzeitumgebung wechseln --> Problem Tools - Maven, Gradle, Ant & mehr 5
D Problem bei der Ausgabe in einem Applet Tools - Maven, Gradle, Ant & mehr 3
T Java Applet - Problem mit Tastatur Abfrage Tools - Maven, Gradle, Ant & mehr 5
F PQ-Formel berechnen -> kleines Problem Tools - Maven, Gradle, Ant & mehr 3
G Mal wieder ein Problem mit Applet und Bildern. Tools - Maven, Gradle, Ant & mehr 3
P Grundsätzliches Problem, Applet aktutalisieren Tools - Maven, Gradle, Ant & mehr 2
R Gif Animation / Problem Tools - Maven, Gradle, Ant & mehr 4
D Applet Dateizugriff unter UNIX und TextListener Problem Tools - Maven, Gradle, Ant & mehr 19
D Problem beim einbinden von jar und class datei Tools - Maven, Gradle, Ant & mehr 8
R URL Problem Tools - Maven, Gradle, Ant & mehr 5
D Problem mit Applet Tools - Maven, Gradle, Ant & mehr 3
P Eclipse Problem beim JAR-erstellen Tools - Maven, Gradle, Ant & mehr 5
D problem beim auslesen von text aus einem textfeld... Tools - Maven, Gradle, Ant & mehr 15
J Problem mit Panel Tools - Maven, Gradle, Ant & mehr 2
L problem mit java plug-in Tools - Maven, Gradle, Ant & mehr 1
G Problem mit URL Tools - Maven, Gradle, Ant & mehr 3
S Problem: Bild im Applet wird 3-4 Mal geladen Tools - Maven, Gradle, Ant & mehr 5
T JApplet in Browserfenster maximieren Tools - Maven, Gradle, Ant & mehr 10
A JApplet Form: JPanel dynamisch füllen Tools - Maven, Gradle, Ant & mehr 3
P JApplet mit Look&Feel? Tools - Maven, Gradle, Ant & mehr 8
S Probleme mit Kombination Java JApplet;MySQL;Webserver Tools - Maven, Gradle, Ant & mehr 3
M Probleme mit JApplet Tools - Maven, Gradle, Ant & mehr 20
G JApplet mit Chat Tools - Maven, Gradle, Ant & mehr 2
C JApplet soll beim Aufruf nicht neustarten Tools - Maven, Gradle, Ant & mehr 3
H JApplet von laufendem JApplet starten Tools - Maven, Gradle, Ant & mehr 8
G JApplet parallel zu Java-Applikation entwickeln Tools - Maven, Gradle, Ant & mehr 11
H JApplet läuft zwar korrekt, bleibt aber unsichtbar Tools - Maven, Gradle, Ant & mehr 3
M JApplet funktioniert nicht Tools - Maven, Gradle, Ant & mehr 5
S aus einem JApplet ein Image in separatem JFrame anzeigen Tools - Maven, Gradle, Ant & mehr 10
N Jars in JApplet Tools - Maven, Gradle, Ant & mehr 2
M Unterschiede-Vorteile Applet/JApplet Tools - Maven, Gradle, Ant & mehr 3
D Runnable JApplet mit Bild/Ovals "übermalt" Buttons Tools - Maven, Gradle, Ant & mehr 6
A Tastatureingaben und JApplet Tools - Maven, Gradle, Ant & mehr 2
M eine Frage über JApplet und JMenuBar Tools - Maven, Gradle, Ant & mehr 6
D JApplet & MouseListener Tools - Maven, Gradle, Ant & mehr 5
L Applet oder JApplet Tools - Maven, Gradle, Ant & mehr 10
M JApplet komplett neu zeichnen Tools - Maven, Gradle, Ant & mehr 3
M JApplet läuft in Eclipse, aber nicht in den Browsern Tools - Maven, Gradle, Ant & mehr 7
S JApplet- Komponentenanzeige Tools - Maven, Gradle, Ant & mehr 7
M ein aus einem JApplet gestartetes JFrame schliessen Tools - Maven, Gradle, Ant & mehr 6
A [GUI] [JApplet] [JDialog] Nochmal die Frage zur Modalität un Tools - Maven, Gradle, Ant & mehr 3
K Bild (jpg) in einem JApplet Tools - Maven, Gradle, Ant & mehr 2
D JApplet Tools - Maven, Gradle, Ant & mehr 11

Ähnliche Java Themen

Neue Themen


Oben