Repaint()

Schlagdraufunschluss_124

Aktives Mitglied
Hallo ich bins schon wieder :)

Ich hab ein Problem mit der Repaint()-Methode:

Anstatt, dass repaint einfach ein neues aktualisiertes Bild zeichnet, zeichnet repaint sozusagen das neue aktualisierte + das alte Bild.
Ich hab zum test in einer Update-Methode ein Viereck immer um x+1 und y+1 verschoben.
-> Anstatt dass sich das einzelne Rechteck verschiebt. gibt es eine Diagonale auf dem Bild.

Java:
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Spiel implements Runnable {

    Data data;
    Gui gui;
    public final int fps = 60;
    public final long maxLoop = 1000 / fps;
    private boolean isRunning = true;
    // Graphics g;

    public Spiel(Data data) {
        this.data = data;
        Gui gui = new Gui(data);

        this.gui = gui;
        new Thread(this).start();
    }

    @Override
    public void run() {

        long oldTime;
        long curTime;

        while (isRunning) {
            oldTime = System.currentTimeMillis();
            update();
            render();
            curTime = System.currentTimeMillis();

            if ((curTime - oldTime) > maxLoop) {
                continue;
            } else {
                try {
                    Thread.sleep(maxLoop - (curTime - oldTime));
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    void update() {
        data.setEx_X(data.getEx_X() + 1);
        data.setEx_Y(data.getEx_Y() + 1);
        System.out.println("X:  " + data.getEx_X());
        System.out.println("Y:  " + data.getEx_Y());
        }

    public void render() {
        System.out.println("Zeichne");
        gui.repaint();
    }

}

Java:
import java.awt.Graphics;

import javax.swing.JFrame;

public class Gui extends JFrame  {

    Data data;
    public Gui(Data data) {
        this.data = data;
        setSize(500, 500);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);
      
    }
  
    public void paint(Graphics g){
        g.fillRect(data.getEx_X(), data.getEx_Y(), 100, 100);
      
      
    }

}
 

Chloroplast

Bekanntes Mitglied
Dein Aufruf von repaint stößt einfach nur das neuzeichnen an. Wie du schon selber schreibst "klatscht" er einfach alles übereinander.
Es gibt aber methoden in Graphics die dir da behilflich sein können.
Am simpelsten ist es aber ein Viereck deiner gewünschten hintergrundfarbe mit der größe der Zeichenfläche zu zeichnen, bevor der restliche Kladderradatsch kommt.

LG
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Wenn ich repaint(); mache, flackert es so stark, das man fast nichts erkennen kann. Java Basics - Anfänger-Themen 11
J Erste Schritte Mit repaint() ist Label nicht sichtbar Java Basics - Anfänger-Themen 15
S Repaint() in der Schleife funktioniert nicht immer Java Basics - Anfänger-Themen 5
H Graphics / repaint Java Basics - Anfänger-Themen 8
D Verhindern das repaint beim vergrößern aufgerufen wird Java Basics - Anfänger-Themen 9
M Liste mit repaint aktualisieren Java Basics - Anfänger-Themen 1
E Probleme mit repaint() Java Basics - Anfänger-Themen 15
K Erkennt repaint nicht Java Basics - Anfänger-Themen 1
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
1 repaint() Funktion erzeugt Flackern Java Basics - Anfänger-Themen 33
I Anfängerfrage JPanel repaint() Java Basics - Anfänger-Themen 6
A externer repaint Aufruf Java Basics - Anfänger-Themen 9
G Problem mit repaint() Java Basics - Anfänger-Themen 2
J repaint() geht gar nicht; GUI aktualisieren Java Basics - Anfänger-Themen 10
J paint() vs repaint() Java Basics - Anfänger-Themen 3
C repaint wird nicht während Druck auf Maustaste ausgeführt. Java Basics - Anfänger-Themen 4
A Methoden repaint() zeichnet JPanel falsch Java Basics - Anfänger-Themen 3
P [JTable] Problem mit repaint() Java Basics - Anfänger-Themen 2
P Interpreter-Fehler Im for loop funkzioniert repaint nicht :( Java Basics - Anfänger-Themen 4
M repaint() in run-Methode funktioniert nicht Java Basics - Anfänger-Themen 9
O Probleme mit der repaint-Funktion Java Basics - Anfänger-Themen 6
W repaint() ruft paint() nicht auf Java Basics - Anfänger-Themen 9
J repaint() funktioniert nicht wie gewünscht Java Basics - Anfänger-Themen 30
I Hangman CardLayout/repaint? Java Basics - Anfänger-Themen 2
H Variablen Probleme mit repaint() Java Basics - Anfänger-Themen 2
Y im applet malen ohne repaint paint ? Java Basics - Anfänger-Themen 6
J repaint(); launisch ? Java Basics - Anfänger-Themen 3
E Altes Bild bei repaint() löschen? Java Basics - Anfänger-Themen 10
Z Wie repaint() bei Uhr realisieren? Java Basics - Anfänger-Themen 12
N JScrollPane repaint(); geht nicht Java Basics - Anfänger-Themen 4
I repaint bei jpanel Java Basics - Anfänger-Themen 10
T repaint wir nicht mehr geöffnet! Java Basics - Anfänger-Themen 38
T Canvas aktualisierung mit repaint Java Basics - Anfänger-Themen 5
C GUI aktualisieren: repaint, validate, Fenstergröße ändern bringt nichts Java Basics - Anfänger-Themen 13
Antoras Swing repaint und Nullpointer Java Basics - Anfänger-Themen 6
O repaint() wird nicht ausgeführt Java Basics - Anfänger-Themen 3
S problem mit repaint() in Thread Java Basics - Anfänger-Themen 6
Antoras swing und repaint-Ersatz Java Basics - Anfänger-Themen 8
G Automatischer repaint bei Swing so wie bei AWT? Java Basics - Anfänger-Themen 7
M Problem mit repaint Java Basics - Anfänger-Themen 2
R Probleme beim Repaint Java Basics - Anfänger-Themen 3
T repaint einer komponente Java Basics - Anfänger-Themen 2
E repaint() aufrufen Java Basics - Anfänger-Themen 12
F paintComponent mit repaint() aufrufen Java Basics - Anfänger-Themen 27
kulturfenster Probleme mit repaint() Java Basics - Anfänger-Themen 2
S SelectionListener + repaint().Verständnisproblem ;) Java Basics - Anfänger-Themen 7
K Repaint() in Methode Java Basics - Anfänger-Themen 13
G Frage zu repaint() Java Basics - Anfänger-Themen 5
D JPanel repaint() wird nicht gemacht! Java Basics - Anfänger-Themen 7
B Problem mit repaint() Java Basics - Anfänger-Themen 8
V Reihenfolge von Befehlen - hier repaint() zu spät Java Basics - Anfänger-Themen 13
G repaint in paint aufrufen? Java Basics - Anfänger-Themen 9
F repaint() - Methode verzögern lassen? Java Basics - Anfänger-Themen 3
I Erst repaint() dann zeichnen? Java Basics - Anfänger-Themen 6
D von paint() und repaint() im Applet Java Basics - Anfänger-Themen 4
J probleme mit repaint Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben