JFrame mit Wartezeit

Status
Nicht offen für weitere Antworten.

Schmidi

Mitglied
Hi,

Habe ein 2D Spiel Programmiert und wollte einen gegner Programmieren und habe den Befehl Tread.Sleep verwendet aber als ich das Programm ausgeführt habe läufte das Programm intern ab und am Bildschirm sah man nur mehr das Endergebniss, aber ich will dass das Programm alle einzelnen schritte ausführt und Anzeigt!!

Mfg. Schmidi
 

fantrixx

Bekanntes Mitglied
Hae ? also wenn du mit Bildern arbeitest dann würde ich an deiner Stelle erstmal einen Buffer:

Code:
public void update (Graphics g) {
		
		// Bitmap initialisieren: der nötige Speicherplatz wird angelegt
		if (dbImage == null)
		{
			dbImage = createImage (getSize().width, getSize().height);
			dbGraphics = dbImage.getGraphics();
		}
		
		// Hintergrund in der Bitmap löschen
		dbGraphics.setColor(getBackground());
		dbGraphics.fillRect(0,0,getSize().width, getSize().height);
		
		// Vordergrund zeichnen
		dbGraphics.setColor(getForeground());
		paint(dbGraphics);
		
		// Bild im Fenster anzeigen
		g.drawImage(dbImage,0,0,this);
		
		//----------------------------ENDE---Doppelpufferung----------------------------
}

fügt das in dein Code ein dann laden erstmal deine bilder schneller.
 

Sky

Top Contributor
such mal zu dem Thema hier im Forum Thread#sleep und Swing zusammen geht nicht ohne Probleme... Swing ist nicht Thread-sicher.
 

L-ectron-X

Gesperrter Benutzer
fantrixx hat gesagt.:
Code:
dbImage = createImage (getSize().width, getSize().height);
dbGraphics = dbImage.getGraphics();
Eigentlich gehört diese Zeile in die init()-Methode bzw. den Konstruktor. Dann kann man sich auch die Prüfung auf null sparen. Und nützlich wäre die Doppelpufferung auch nur unter AWT, weil in Swing die Komponenten bereits gepuffert werden.


@Schmidi: Am besten ist es vielleicht, wenn du den Warte-Thread in eine eigene Klasse auslagerst, ihm die Klasse, welche Warten soll über eine Referenz bekannt machst, und über die Referenz dann ein Neuzeichnen einleitest, nachdem im Warte-Thread ein Wartezyklus abgelaufen ist.
Dieses einfache Beispielprogramm arbeitet mit dieser Varaiante.
 

TheJavaKid

Top Contributor
sry, ich erwähne es nur, ich kenn den schmidi nämlich persönlich *gg*

also bei mir geht alles! -> Schau mal:


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

// Autor: Mathias Hackl
// Datum: 22.03.2006
// import java.util.*;
// import java.awt.*;
// import javax.swing.*;
// import java.awt.*;
public class Strichanimation extends JFrame {
  // Anfang Variablen
  private int i;
  private int j=80;
  private int color=256;
  // Ende Variablen

  public Strichanimation(String title) {
    // Frame-Initialisierung
    super(title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent evt) { System.exit(0); }
    });
    int frameWidth = 300;
    int frameHeight = 300;
    setSize(frameWidth, frameHeight);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten

    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }

  // Anfang Ereignisprozeduren
  // Ende Ereignisprozeduren
  public void paint( Graphics g ) {
      try {
        for(int i=0; i<=290; i+=2) {
          j++;
          color--;
          Thread.sleep(80);
          g.setColor(new Color(color, color, color));
          g.drawLine(150, 1, i, j);
        }
      }catch(Exception e) {
        System.out.println("Fehler!");
      }
  }

  public static void main(String[] args) {
    new Strichanimation("Strichanimation");
  }
}
 

L-ectron-X

Gesperrter Benutzer
Das geht, weil du innerhalb einer Schleife zeichnest, du könntest bei diesem Programmaufbau aber die Animation bspw. durch Klick auf einen Button nicht abbrechen.
 

TheJavaKid

Top Contributor
jep, da wiederspreche ich dir nicht ;)

ich hätte da auch gleich ne frage:
ist es möglich die Linie einer Variable zuzuweisen?

also zum Beispiel:
public void paint( Graphics g ) {
Graphics einStrich = g.drawLine(0,8,50, 60);
for(int i=0; i<=getWidth(), i+=2) {
try {
Thread.sleep(80);
einStrich.setBounds(i, 40, 50, 50);
} catch (Exception e) {
System.out.println("Ey da ist ein fehler");
}
}
 

L-ectron-X

Gesperrter Benutzer
Das würde gehen, wenn du eine Klasse Linie schreibst und dort eine paint()-Methode implementierst, die eine Linie mit den entsprechenden Abmessungen und Positionen auf eine Fläche zeichnet.
Um Linien zu zeichnen kennt das Graphics-Objekt aber bereits die Methode drawLine().
http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Graphics.html#drawLine(int, int, int, int)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Tobero JFrame nimmt keinen Key oder Maus inputs Allgemeine Java-Themen 0
FRI3ND JFrame wird nicht angezeigt Allgemeine Java-Themen 3
N JFrame für Minispiele Allgemeine Java-Themen 14
F JFrame fü Eclipse wie? Allgemeine Java-Themen 6
4 Swing JFrame BackgroundColor Allgemeine Java-Themen 3
RalleYTN Merkwürdiger Fehler mit JFrame im Vollbild Allgemeine Java-Themen 4
snipesss Visueller Countdown in JFrame Allgemeine Java-Themen 1
K Swing OpenStreetMap in JFrame einfügen Allgemeine Java-Themen 1
K Best Practice JFrame Objekt allgemein zugänglich machen Allgemeine Java-Themen 8
S JFrame Variable mitgeben Allgemeine Java-Themen 5
F JFrame übergeben Allgemeine Java-Themen 5
B JFrame Text Ausgabe Allgemeine Java-Themen 7
T JFrame Overlay Allgemeine Java-Themen 1
I JPanel soll sich dem JFrame anpassen Allgemeine Java-Themen 1
I JFrame vor schliessen, methode auführen Allgemeine Java-Themen 2
I JFrame Icon in Main übergeben Allgemeine Java-Themen 1
? AWT Translucent JFrame mit repaint Allgemeine Java-Themen 4
S OOP JFrame als Observer eines JPanel Allgemeine Java-Themen 3
X Modalität von JDialog nachträglich in JFrame implementieren? Allgemeine Java-Themen 8
P Ableitungsfehler JFrame Allgemeine Java-Themen 5
A Excel Tabelle in JFrame darstellen Allgemeine Java-Themen 6
S JFrame an Fenstergröße anpassen Allgemeine Java-Themen 16
G JPanel in JFrame Allgemeine Java-Themen 9
S JDialog Daten ins JFrame übergeben Allgemeine Java-Themen 5
E Grafiken auf dem JFrame Allgemeine Java-Themen 5
D Bilder in JFrame anzeigen Allgemeine Java-Themen 5
X Kann JLabel in JFrame nicht aktualisieren Allgemeine Java-Themen 3
J pack() lässt JFrame grau Allgemeine Java-Themen 3
J JFrame / PopUp-Menü bearbeiten Allgemeine Java-Themen 2
M JFrame absolut im Vordergrund Allgemeine Java-Themen 2
D JFrame nur in eine Richtung resizen Allgemeine Java-Themen 6
X JFrame sichtbar bei einem gesperrten Computer Allgemeine Java-Themen 11
U Zeichnen mit JFrame. Allgemeine Java-Themen 5
P JPanel - JFrame Allgemeine Java-Themen 6
N JFrame Icon selbst erzeugen Allgemeine Java-Themen 2
T applet und JFrame Allgemeine Java-Themen 12
T abspeichern und laden von objekten in JFrame Allgemeine Java-Themen 2
Developer_X JFrame verkleinern Allgemeine Java-Themen 20
D Problem mit Tooltips und JFrame (Tooltips sind zu kurz!) Allgemeine Java-Themen 4
Z Uralt-Applet in JFrame Anwendung konvertieren Allgemeine Java-Themen 12
F JFrame zeigt Hintergrund und nicht den Inhalt Allgemeine Java-Themen 12
G Bilder einer Webcam im JFrame anzeigen Allgemeine Java-Themen 5
D Von Thread auf JFrame zugreiffen? Allgemeine Java-Themen 5
M JFrame anpassen Allgemeine Java-Themen 4
M Neues JPanel in JFrame einbinden Allgemeine Java-Themen 6
W Das schließen des JFrame abfangen, wiei? Allgemeine Java-Themen 6
M PDF auf JFrame Allgemeine Java-Themen 10
D JFrame vergrößert nicht auf die gewünschte Größe Allgemeine Java-Themen 2
MQue JFrame nur einmal öffnen Allgemeine Java-Themen 3
MQue Fokus von Komponenten/JFrame Allgemeine Java-Themen 3
MQue JFrame bleibt hängen Allgemeine Java-Themen 3
P Image auf JPanel auf JFrame Allgemeine Java-Themen 3
P JPanel in JFrame Allgemeine Java-Themen 2
T Sound in JFrame: Ich krichs nich hin =( Allgemeine Java-Themen 7
E 2 Images auf einem JFrame Allgemeine Java-Themen 8
TheJavaKid Component in der Titelleiste vom JFrame? Allgemeine Java-Themen 18
G Word-Dokument in einem JFrame Allgemeine Java-Themen 2
T Servlet und JFrame Allgemeine Java-Themen 2
thE_29 Java App/JFrame Bildschirm "sperren" Allgemeine Java-Themen 10
U JFrame, JOptionPane - vor dem Schließen Benutzer fragen Allgemeine Java-Themen 10
T JFrame in Statusleiste minimieren Allgemeine Java-Themen 4
D JFrame nicht per Hand schreiben Allgemeine Java-Themen 5
G wie Klasse in JFrame "einfügen" Allgemeine Java-Themen 12
G JFrame nimmt mein Image nicht Allgemeine Java-Themen 2
S visible prob mit JFrame und JDialog Allgemeine Java-Themen 4
A JFrame-Liste Allgemeine Java-Themen 4
J JFrame Problem beim schließen Allgemeine Java-Themen 2
R java.awt.Component.setCursor() fehlt bei der JFrame doc Allgemeine Java-Themen 2
G wartezeit Allgemeine Java-Themen 6
C Wartezeit einbauen Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben