Anzeige:
Ergebnis 1 bis 9 von 9

Thema: Applet neuzeichnen

  1. #1
    Registrierter Benutzer
    Registriert seit
    28.05.2003
    Beiträge
    80

    Applet neuzeichnen

    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.

  2. #2
    Registrierter Benutzer
    Registriert seit
    16.09.2001
    Beiträge
    1.182

    Wie?

    Wie machst du denn das genau?

  3. #3
    Registrierter Benutzer
    Registriert seit
    28.05.2003
    Beiträge
    80
    Zitat Zitat von ceisserer
    Wie machst du denn das genau?
    Das neuzeichnen?
    so:
    Code:
      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();
    	}
      }

  4. #4
    Registrierter Benutzer
    Registriert seit
    19.07.2004
    Beiträge
    50
    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:
    Code:
    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:
    Code:
    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();
      }
    }

  5. #5
    Registrierter Benutzer
    Registriert seit
    16.09.2001
    Beiträge
    1.182

    Hmm...

    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.
    Geändert von Lin728 (20-08-2017 um 19:46 Uhr)

  6. #6
    Registrierter Benutzer
    Registriert seit
    28.05.2003
    Beiträge
    80
    Zitat Zitat von KL47
    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.

  7. #7
    Registrierter Benutzer
    Registriert seit
    28.05.2003
    Beiträge
    80
    Zitat Zitat von ceisserer
    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.

  8. #8
    Registrierter Benutzer
    Registriert seit
    16.09.2001
    Beiträge
    1.182

    Ja dann halt...

    java.awt.Component.getGraphics() -> disposen wennst fertig bist oder am besten sharen.
    Geändert von Lin728 (20-08-2017 um 19:46 Uhr)

  9. #9
    Registrierter Benutzer
    Registriert seit
    09.10.2004
    Beiträge
    14
    validate() statt repaint() ?

    Grüße,
    FP

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •