Archiv verlassen und diese Seite im Standarddesign anzeigen : Applet neuzeichnen
BenNavis
10-12-2004, 15:41
Hi,
ich habe mir eine kleine Java-Anwendung geschrieben, in der jede Sekunde die Oberfläche neu gezeichnet wird. Als stand-alone klappt das auch, aber wenn ich daraus ein Applet mache, dann klappt das neuzeichnen nicht mehr.
Kann mir jemand weiterhelfen?
Danke,
B.
Wie machst du denn das genau?
BenNavis
10-12-2004, 17:26
Wie machst du denn das genau?
Das neuzeichnen?
so:
public void go() {
while(true) {
try {
repaint();
Thread.sleep(1000);
}
catch (InterruptedException e) {
return;
}
}
}
public class test extends Applet {
public void init() {
Applet app = new Applet();
app.go();
}
}
Vielleicht ne etwas andere Methode: Einfach, wenn das Applet startet, das Programm als Fenster anzeigen. Wenn du das ganze kompilierst, kannst du das als Applet verwenden, indem du <applet src="MainApplet.class"></applet> in ein HTML-Dokument einfügst, oder als normale Applikation verwenden, indem du java Main eingibst. Dann musst du alles nur einmal programmieren...
MainApplet.java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MainApplet extends JApplet
{
public void init()
{
String args[] = {};
Main.main(args);
}
public void paint (Graphics g)
{
g.drawString("Titel der Anwendung...", 15, 15);
}
}
Main.java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Main extends JFrame
{
public Main()
{
super("Titel der Anwendung");
setSize(450, 450);
}
public static void main (String args[])
{
new Main().show();
}
}
versuch mal paint(Toolkit.getGraphics(this)) oder so, damit forderst du ein graphics-object explizit an, ich hab auch schon öfters von solchen Problemen gehört.
Und nicht vergessen, am schluss g.dispose(), sonst muss das der finalizer machen und inzwischenzeit gehen dir die handles aus.
BenNavis
14-12-2004, 11:14
Vielleicht ne etwas andere Methode: Einfach, wenn das Applet startet, das Programm als Fenster anzeigen. Wenn du das ganze kompilierst, kannst du das als Applet verwenden, indem du <applet src="MainApplet.class"></applet> in ein HTML-Dokument einfügst, oder als normale Applikation verwenden, indem du java Main eingibst. Dann musst du alles nur einmal programmieren...
Sorry, dass ich mich erst jetzt melde, ich war verhindert...
Ich verstehe nicht, was Du damit meinst. Ein Applet darf doch keine main Methode haben, oder? <applet src... hab ich in mein HTML-Dokument ingefügt. Das Applet wird ja auch angezeigt, aber der refresh kommt halt nicht alle 1000ms sondern nur wenn das Fenster über den WM neugezeichnet wird.
BenNavis
14-12-2004, 11:16
versuch mal paint(Toolkit.getGraphics(this)) oder so, damit forderst du ein graphics-object explizit an, ich hab auch schon öfters von solchen Problemen gehört.
Und nicht vergessen, am schluss g.dispose(), sonst muss das der finalizer machen und inzwischenzeit gehen dir die handles aus.
lg Clemens
getGraphics() wird mir von eclipse nicht als Methode angeboten.
java.awt.Component.getGraphics() -> disposen wennst fertig bist oder am besten sharen.
FPhilipp
16-12-2004, 16:00
validate() statt repaint() ?
Grüße,
FP
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.