Update überschreiben klappt nicht

Major_Sauce

Bekanntes Mitglied
Hallöchen,

versuche gerade die update()-Methode, die wohl von der repaint()-Methode in Swing aufgerufen wird zu überschreiben, doch es haut nicht hin.
Könnte mir vielleicht jemand sagen wieso es nicht geht ?

Java:
package Main;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.PaintContext;

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

public class This extends JFrame {
	
	int x = 0;
	int y = 0;
	
	public static void main(String[] args){
		new This();
	}
	
	public This(){
		
		setBounds(300, 150, 800, 600);
		setLayout(null);
		setResizable(false);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
		
		new Thread(new Runnable() {
			
			@Override
			public void run() {
				
				while(true){
				
					repaint();
					
					x++;
					y++;
					
					try {
						Thread.sleep(30);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				
				}	
			}
		}).start();
		
	}
	
	@Override
	public void update(Graphics g) {
		System.out.println("update");
	}
	
}

mfg Major_Sauce
 
Hey Major_Sauce!

Probiers mal mit der paintComponents(Graphics g) Methode! 😉

EDIT: Argh! Zu schnell gewesen^^ Ich sehe grade du erbst vom JFrame. Hast du bestimmte Gründe dafür?
Ansonsten würde ich lieber von JPanel erben. Da hast du dann die paintComponents(Graphics g)
 
Zuletzt bearbeitet:
Ja, im Endeffekt habe ich auch ein JPanel, aber ich möchte nicht dass das komplette Frame erst bereinigt wird, bevor es gezeichnet wird, desswegen spielt das JPanel in diesem Kontext gar keine rolle. Später wird aber nich ein Panel hinzugefügt 🙂
 
Java:
@Override
    public void paint(Graphics g) {
        super.paint(g);
        System.out.println("paint");
    }

Die paint wird aufgerufen. Anscheinend ist dein JFrame lightweight aus irgendeinem Grund.
 
Zuletzt bearbeitet:
Hab die Lösung, musste nur noch die repaint()-Methode überschreiben und in dieser update(g) aufrufen.
Leider ist das immer noch nicht wirklich flüssig...

Kennst du eine möglichkeit irgendetwas wirklich flüssig malen zu lassen, denn immer wenn ich auch nur ein Rectangle malen lasse ruckelt es ein wenig.
 

Zurück
Oben