Timer JFrame

Dragnaros

Mitglied
Hi ich hab da ein kleines problem mit der spielschleife.
ich finde leider nur schleifen die immer wieder von einem timer aufgerufen
werden dies will ich aber nicht ich möchte eine schleife die sich selbst startet
wen sie durchgelaufen ist und habe es nun mit der run() methode versucht leider
wird diese niemals ausgeführt und wen ich dies manuell versuche wird das programm
ausgeführt allerdings wird das frame nie geöffnet.

mein ziel ist es eine spielschleife zu schreiben welche:
1. systemzeit abfragen (start)
2. berechnungen asführen
3. systemzeit abfragem(stop)
4. (start - stop) * 1000 = fps
5. repaint();

ich habe derzeit diese schleife:
Java:
    @Override
    public void run() {
        
        long fpsCountStart;
        long fpsCountStop;
        long fpsWork;
        
        while (run) {
            fpsCountStart = System.nanoTime();
            
            //berechnungen
            
            fpsCountStop = System.nanoTime();
            fpsWork = (fpsCountStart - fpsCountStop) * 1000;
            fps = 5;
            repaint();
        }
    }
    
    public void paint(Graphics g) {
        g.drawString("FPS: " + fps, 10, 20);
    }

zuvor hatte ich dieseschleife:
Java:
    public Board(int frameWidth, int frameHeight) {
        
        setFocusable(true);
        setDoubleBuffered(true);
        
        timer = new Timer(75, this);
        timer.start();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        player.move();
        repaint();
    }

Problem bei der schleife war das ich im debug modus min 75 beim timer einstellen
musste weil sonst ein nullpointer auftrat (programmierfehler bild sollte geladen
werden aber die berechnung zur festlegung war noch nicht so weit) zudem habe
ich hier eine feste fps zahl ich möchte aber eine flexible. also ich möchte nicht
festlegen das es alle x ms berechnet wird sondern ich möchte als fps nur abfragen
wie lange es gedauert hat dadurch erreiche ich eine maximale fps zahl welche bei
zu hoher rechenlast in den keller fällt.

Links Tipps beispiel beschreibungen und vorallem quellcode sind gesucht.

bitte bedenkt ich bin noch anfänger und will auch verstehen was ich da mache.
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
bei sowenig Code kann man nicht sagen ob alles stimmt oder nicht,
der Timer scheint gestartet zu werden, also sollte es laufen,

wenn der Start vor der Anzeige der GUI passiert, sind Exceptions bei früher run-Ausführung nicht verwunderlich,
es könnte gewartet werden, es gibt auch eine konfigurierte initiale Wartezeit,
zumindest bei java.util.Timer, der Code scheint javax.swing.Timer zu sein, dazu der ActionListener,
dann wäre der run-Code ja aus dem Spiel?

entscheide dich für irgendwas und beschreibe dann ganz konkret die Probleme,
ein vollständiges minimales Testprogramm wäre in jedem Fall hilfreich
 

Dragnaros

Mitglied
ich hab hier den quellcode nur gezeigt um zu zeigen was ich bereits kenne ich suche nun aber
eine spielschleife ohne jegliche art von timer die halt neu startet wen sie durch ist und ich
suche möglichst komplette quellcodes die mir zeigen wie soetwas aussehen kann.
 

André Uhres

Top Contributor
habe es nun mit der run() methode versucht leider wird diese niemals ausgeführt...
Java:
    @Override
    public void run() {
        
        long fpsCountStart;
        long fpsCountStop;
        long fpsWork;
        
        while (run) {
            fpsCountStart = System.nanoTime();
            
            //berechnungen
            
            fpsCountStop = System.nanoTime();
            fpsWork = (fpsCountStart - fpsCountStop) * 1000;
            fps = 5;
            repaint();
        }
    }

Hallo Dragnaros,

hast Du die Variable "run" auf true gesetzt?

Gruß,
André
 

Dragnaros

Mitglied
Java:
package mw;

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;

/**
 *
 * @author Dragnaros
 */
public class Board extends JPanel implements Runnable {
    
    private boolean run;
    private long fps;
    
    public Board(int frameWidth, int frameHeigeht) {
        
        setFocusable(true);
        setBackground(Color.GREEN);
        setDoubleBuffered(true);
        
        run = true;
    }

    @Override
    public void run() {
        
        long fpsCountStart;
        long fpsCountStop;
        long fpsWork;
        
        while (run) {
            fpsCountStart = System.nanoTime();
            
            //berechnungen
            
            fpsCountStop = System.nanoTime();
            fpsWork = (fpsCountStart - fpsCountStop) * 1000;
            fps = 5;
            repaint();
        }
    }
    
    public void paint(Graphics g) {
        g.drawString("FPS: " + fps, 10, 20);
    }
}

ja hab ich.
 
S

SlaterB

Gast
wird das Runnable auch irgendwann an einen Thread zur Ausführung übergeben?
alles ist einzeln abzufragen wenn du kein vollständiges Testprogramm postest
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E JDialog mit count down timer AWT, Swing, JavaFX & SWT 1
M 2D-Grafik timer bei Analoguhr AWT, Swing, JavaFX & SWT 2
A Timer AWT, Swing, JavaFX & SWT 1
H Timer ohne alles lahmzulegen? AWT, Swing, JavaFX & SWT 2
O Timer in JOptionPane anzeigen AWT, Swing, JavaFX & SWT 2
ralfb1105 Swing Timer in SwingWorker stoppen AWT, Swing, JavaFX & SWT 4
T Timer und GIF Animationen pausieren während Maus sich bewegt AWT, Swing, JavaFX & SWT 4
W Swing JLabel jede Sekunde aktualisieren, ohne Timer zu benutzen AWT, Swing, JavaFX & SWT 4
D Timer für Bildfolge in einem jLabel AWT, Swing, JavaFX & SWT 5
M Event Handling MousePressed vs. Timer! AWT, Swing, JavaFX & SWT 5
F Java Timer Bug? AWT, Swing, JavaFX & SWT 6
B Timer, TimerTask und Warten AWT, Swing, JavaFX & SWT 4
R Performance Drag and Drop & Timer AWT, Swing, JavaFX & SWT 3
E Problem mit Timer und Swing AWT, Swing, JavaFX & SWT 8
N AWT Timer überschreiben? AWT, Swing, JavaFX & SWT 8
P Label rotieren mit Timer AWT, Swing, JavaFX & SWT 5
F Swing GUI und Model mit Timer AWT, Swing, JavaFX & SWT 13
K Threads - Timer - run() mehrfach parallel? AWT, Swing, JavaFX & SWT 2
J Nach Timer ausführen AWT, Swing, JavaFX & SWT 6
S Timer oder Thread.sleep AWT, Swing, JavaFX & SWT 3
F Swing timer nimmt delay nicht an AWT, Swing, JavaFX & SWT 2
S Swing Timer, Countdown AWT, Swing, JavaFX & SWT 2
F Timer welches JPanel aktualisiert AWT, Swing, JavaFX & SWT 6
H Timer/Stoppuhr in MenuBar anzeigen AWT, Swing, JavaFX & SWT 4
D Applet Methode in Timer einbinden AWT, Swing, JavaFX & SWT 6
F Applet Applet starten...(+Timer?) AWT, Swing, JavaFX & SWT 12
R Probleme mit Swing Timer AWT, Swing, JavaFX & SWT 6
C Timer Problem AWT, Swing, JavaFX & SWT 5
VfL_Freak Swing kann ich einen laufenden Timer mitten in der Ausführung abbrechen? AWT, Swing, JavaFX & SWT 6
H Swing Timer Probleme AWT, Swing, JavaFX & SWT 5
Burny91 Swing Mit Timer JLabel updaten AWT, Swing, JavaFX & SWT 2
P Game of Life - PaintComponent-Problem / Timer? AWT, Swing, JavaFX & SWT 8
B JLabel mittels Timer und setLocation verschieben AWT, Swing, JavaFX & SWT 3
O Swing es können keine neuen Labels hinzufügt werden während der Timer läuft AWT, Swing, JavaFX & SWT 14
C Timer erstellen? AWT, Swing, JavaFX & SWT 2
E AWT Problem mit Repaint (in Loop oder Timer) AWT, Swing, JavaFX & SWT 3
K Timer und Threads ruckeln für Fotoschwenk AWT, Swing, JavaFX & SWT 3
L Timer Swing GUI AWT, Swing, JavaFX & SWT 2
G Swing Timer stoppen AWT, Swing, JavaFX & SWT 4
B Swing-Timer AWT, Swing, JavaFX & SWT 4
D javax.swing.Timer bringt NullPointerException AWT, Swing, JavaFX & SWT 4
J Swing timer? AWT, Swing, JavaFX & SWT 2
C Timer, Darstellung einer Uhr AWT, Swing, JavaFX & SWT 4
Z javax.swing.Timer: wie stoppen??? AWT, Swing, JavaFX & SWT 9
H Mehrere Panels auf JFrame AWT, Swing, JavaFX & SWT 8
M Seltsame Exception bei setVisible(true) Methode in einem JFrame AWT, Swing, JavaFX & SWT 2
Paty JFrame anfänger bräuchte hilfestellung AWT, Swing, JavaFX & SWT 7
Apfelbaum2005 Swing JFrame mehrere JPanels mit unterschiedlichen Formen hinzufügen AWT, Swing, JavaFX & SWT 1
N AWT JPanel zu Jframe hinzufügen AWT, Swing, JavaFX & SWT 2
Mausposition relativ zu JFrame bekommen AWT, Swing, JavaFX & SWT 6
sserio JFrame setIconImmage() funktioniert nicht AWT, Swing, JavaFX & SWT 3
N CPU Belastung bei offenem JFrame auf fast 100% AWT, Swing, JavaFX & SWT 15
N Knopf ganz oben (JFrame) AWT, Swing, JavaFX & SWT 9
N JFrame löscht alles, wenn groß gemacht AWT, Swing, JavaFX & SWT 9
N jFrame löscht am Ende des Threads alles AWT, Swing, JavaFX & SWT 2
N JFrame loescht alles, sobald der Thread zuende ist AWT, Swing, JavaFX & SWT 22
E JFrame resizing AWT, Swing, JavaFX & SWT 2
E Swing Mausposition auf einem JFrame erkennen AWT, Swing, JavaFX & SWT 5
Lunar Swing JFrame erstellt; weitere Elemente werden nicht eingefügt/sind nicht zu sehen AWT, Swing, JavaFX & SWT 4
L JFrame Gui in anderer Methode aufrufen AWT, Swing, JavaFX & SWT 0
H Beim JFrame erstellen ein anderes schließen AWT, Swing, JavaFX & SWT 0
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
H Tabelle in JFrame einfügen AWT, Swing, JavaFX & SWT 1
VPChief Ein JFrame ohne setUndecorated(true); nicht verschiebbar machen. AWT, Swing, JavaFX & SWT 6
R Swing Hat mein JFrame meinen Component? AWT, Swing, JavaFX & SWT 2
R Swing Design des oberen Balkens in JFrame AWT, Swing, JavaFX & SWT 2
B KeyListener auf JFrame reagiert nicht AWT, Swing, JavaFX & SWT 8
R Swing Komponente im JFrame überschreinen sich AWT, Swing, JavaFX & SWT 7
R Swing Ein gezeichneten String aus dem JFrame löschen AWT, Swing, JavaFX & SWT 5
J Exception beim JFrame erstellen AWT, Swing, JavaFX & SWT 6
T JFrame aktualisieren AWT, Swing, JavaFX & SWT 2
T Bilder bei einem JFrame einfügen AWT, Swing, JavaFX & SWT 4
R Swing Background Image in JFrame implementieren AWT, Swing, JavaFX & SWT 40
L Verbindung von Code und JFrame AWT, Swing, JavaFX & SWT 4
L JFrame wird zu klein erstellt AWT, Swing, JavaFX & SWT 7
dereki2000 Swing JFrame nah hinzufügen von Komponenten akualisieren. AWT, Swing, JavaFX & SWT 2
T JFrame Bild einfügen AWT, Swing, JavaFX & SWT 9
T JavaFX JFrame verhalten wie JOptionPane (ErrorMessage) AWT, Swing, JavaFX & SWT 1
T LookAndFeel LookAndFeel funktioniert nicht beim JFrame wechsel AWT, Swing, JavaFX & SWT 3
P Swing Mehrere JPanels auf ein JFrame hinzufügen? AWT, Swing, JavaFX & SWT 2
F JFrame zeigt nicht alle Elemente auf anhieb an AWT, Swing, JavaFX & SWT 4
P JPanle, JFrame und Graphics AWT, Swing, JavaFX & SWT 2
T Reihenfolge der Komponenten im einem JFrame AWT, Swing, JavaFX & SWT 8
K Grafik in JFrame einpassen AWT, Swing, JavaFX & SWT 3
D Mit Jmenu neue JFrame öffnen AWT, Swing, JavaFX & SWT 2
J BackgroundJPanel passt sich dem JFrame nicht an AWT, Swing, JavaFX & SWT 7
C Swing JFrame ändert Größe AWT, Swing, JavaFX & SWT 0
J JFrame Panel hinzufügen AWT, Swing, JavaFX & SWT 10
K JFrame bei JUnit Tests AWT, Swing, JavaFX & SWT 2
W Swing Hilfe beim Einbinden von Bildern in einem JFrame AWT, Swing, JavaFX & SWT 8
D JFrame wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 1
R Swing JPanels auf JFrame auf verfügbaren Platz aufblasen AWT, Swing, JavaFX & SWT 4
JR2205 Swing JxMaps Einbindung Netbeans JFrame AWT, Swing, JavaFX & SWT 4
Zar von Domarus JFrame zu BufferedImage konvertieren AWT, Swing, JavaFX & SWT 3
K KeyListener ohne JFrame AWT, Swing, JavaFX & SWT 9
Joker4632 JFrame in eine Runnable auslagern? AWT, Swing, JavaFX & SWT 4
M Limit für JFrame-Vergrößerung AWT, Swing, JavaFX & SWT 8
GreenTeaYT Wie vergebe Ich den Jframe Title den Namen aus einem Element von der Arraylist ? AWT, Swing, JavaFX & SWT 4
MaxG. JFrame Größe ändern AWT, Swing, JavaFX & SWT 16
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben