repaint() auch in anderen Klassen!

Luk10

Top Contributor
Hallo,

Ich habe 2 Klassen, eine
Code:
extends JPanel
mit
Code:
paintComponent
, die andere Klasse, in welcher ich mein image sowie x und y Koordinaten von meinem image festlege und die methoden zur bewegung des images!

Ich möchte nun eine methode schreiben in welcher mein image eine kurve beschreibt, aber ich finde keine möglichkeit repaint() in der klasse aufzurufen!

Gibt es da eine lösung für mein Problem?

Danke Luk!
 

Luk10

Top Contributor
Und wie genau kann man das umsetzten?

Soll ich eine Superklasse schreiben von der beide Klassen erben? Aber wo schreibe ich dann meine Methode zur bewegung rein und wo paintComponent (und damit auch repaint)!

Danke Luk :rtfm:
 
S

SlaterB

Gast
rufe repaint() auf das JFrame auf, dann wird alles gezeichnet, oder rufe repaint() auf ein JPanel auf, dann werden die enthaltenen Komponenten neugezeichnet,
wenn du mehrere hast und die alle sauber eingefügt sind, dann kommen die auch alle dran,

dein Problem kingt eher, als wäre mindestens eine der beiden Klassen gar nicht Teil der GUI sondern eine externe Hilfsklasse,
dann hat das mit repaint() wenig zu tun,
dann wird eine Klasse durch repaint() gesteuert und in dessen paint-Methode könnte das Graphics-Objekt an andere Klassen verteilt werden:

public void paintComponent(g) {
super.paintComponent(g);

this.helper.paintSomethingForMe(g);
}
 

Luk10

Top Contributor
Genau ich habe ein Klasse (nicht GUI) die mir mein Image lädt und die Methode move() beinhaltet!

Ich hab das jetzt so gemacht dass ich via konstruktor von helferklasse (ich referenziere ein objekt in der GUI klasse und initialisiere es dort übergebe ich ein objekt von GUI-Klasse an die Helferklasse und gebe ihm dort eine referenz!)

So rufe ich dann repaint in der helfer-klasse auf!

Aber irgendwie wird mir dass so nicht angezeigt ...

Java:
    public void rePaint () {
        gamePanel.repaint();
        try {
            Thread.sleep(50);
        } catch (Exception ex) {}
    }

Java:
    public void kurve_1 () {
        x++;
        rePaint();
        x++;
        rePaint();
        x = x + 2;
        y = y++;
        rePaint();
        for (int i = 0; i<5; i++) {
            x++;
            y++;
            rePaint();
        }
        y = y + 2;
        x++;
        rePaint();
        y++;
        rePaint();
        y++;
    }

Wenn ich nun in der GUI klasse kurve_1 aufrufe, wir mir nichts angezeigt ...

Wieso nicht?
Danke, Luk

Edit:

Hier die Konsturktoren:
(Helferklasse)
Java:
  public Zelle (int x, int y, ZellenGui z, String path, String path_h) {
      this.x = x;
      this.y = y;
      gamePanel = z;
      image = new ImageIcon(path).getImage();
      image_h = new ImageIcon(path_h).getImage();
      pixel_moved = 2;
      upDown = false;
      leftRight = false;
      durchgelaufen = false;
    }
(GUI-Klasse extends JPanel)
Java:
public static void starten() {
      new ZellenGui(450, 400);
  private void initialisieren () {
        zelle = new Zelle(200, 200, this, "F:/Info/LoginGUI.2/pics/zelle4.png", "F:/Info/LoginGUI.2/pics/hintergrund1.png");
        list = new ArrayList<Zelle>();
        list.add(zelle);
 
Zuletzt bearbeitet:
S

SlaterB

Gast
solange der GUI-Thread die Methode kurve_1() abarbeiten muss (etwa bei Aufruf aus einem ActionListener), wird überhaupt nichts neugezeichnet,
versuche es mit Nebenläufigkeit:
Java:
Runnable r = new Runnable() {
  public void run() {
    // Aufruf
  }
}
new Thread(r).start();


allgemein ist aber vieles unklar und Satz-Bruchteile wie 'initialisiere es dort übergebe ich' helfen dabei kaum,
poste einfach ein vollständiges kleines Testprogramm, ohne Image, nur paar x, y-Variablen verändern und davon abhängig z.B. paar Linien malen
 

Luk10

Top Contributor
Uff wie schreibe ich schnell ein Testprogramm ....

Naja ich habe in der GUI-Klasse einen neuen Thread für die Spielschleife ...

In der run() methode dieses Thread's rufe ich die move() methode auf ...
Wo genau soll ich das mit Runnable hinschreiben?

Edit_2:

Klappt doch!
Ich schau mal ob ich für andere noch ein kleines Beispielprogramm schreibe, zur verständnis!

Danke SlaterB!
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Repaint Funktioniert nicht AWT, Swing, JavaFX & SWT 2
D JUNG Repaint function does not work AWT, Swing, JavaFX & SWT 2
E repaint Probleme AWT, Swing, JavaFX & SWT 13
G listener repaint() - verschiedene Darstellung AWT, Swing, JavaFX & SWT 24
ExceptionOfExpectation Textdarstellung auf einem Canvas mit Hilfe von repaint(); AWT, Swing, JavaFX & SWT 6
J actionperformed wird nicht aufgerufen/ repaint() AWT, Swing, JavaFX & SWT 6
L Swing repaint() ruft paintComponent(g1d) nicht auf AWT, Swing, JavaFX & SWT 12
G Repaint wird nicht durchgeführt AWT, Swing, JavaFX & SWT 8
I Swing Verhindern, dass repaint() kaskadiert AWT, Swing, JavaFX & SWT 6
ms_cikar Update swingUtilities Repaint in der Schleife AWT, Swing, JavaFX & SWT 3
T Swing Probleme mit repaint() bzw. JScrollPane AWT, Swing, JavaFX & SWT 7
N Swing JButtons werden nach repaint() doppelt dargestellt AWT, Swing, JavaFX & SWT 12
K Methode repaint() AWT, Swing, JavaFX & SWT 1
B Swing Wann brauche ich repaint() ? AWT, Swing, JavaFX & SWT 1
javampir Swing repaint in JavaFX Anwendung AWT, Swing, JavaFX & SWT 3
A repaint(); AWT, Swing, JavaFX & SWT 9
J Swing ungewünschter Nebeneffekt bei der repaint() Methode AWT, Swing, JavaFX & SWT 3
A Problem: repaint() - Schleife AWT, Swing, JavaFX & SWT 3
S 2D-Grafik repaint()-Aufruf. Und nichts geschieht. AWT, Swing, JavaFX & SWT 5
Joew0815 JDialog repaint() funktioniert nicht wie gewünscht. AWT, Swing, JavaFX & SWT 2
P JPanel und Repaint AWT, Swing, JavaFX & SWT 5
J JavaFX Automatisches Neuzeichnen ("Repaint") abstellen. AWT, Swing, JavaFX & SWT 10
F JTable Repaint Issue AWT, Swing, JavaFX & SWT 1
N Observer: update ruft nicht repaint auf AWT, Swing, JavaFX & SWT 0
C Repaint() funktioniert nicht in TabbedPanel AWT, Swing, JavaFX & SWT 5
S JList repaint AWT, Swing, JavaFX & SWT 1
L NullpointerException und Probleme mit repaint() AWT, Swing, JavaFX & SWT 11
M Repaint mittels Button richtig aufrufen klappt nicht AWT, Swing, JavaFX & SWT 1
B Repaint auf JFrame, JLabel und ImageIcon AWT, Swing, JavaFX & SWT 4
K 2D-Grafik Paint - Wie binde ich repaint ein? AWT, Swing, JavaFX & SWT 8
D repaint() klappt anders als vorgestellt AWT, Swing, JavaFX & SWT 15
R Repaint() in Schleifen, Threads AWT, Swing, JavaFX & SWT 13
B Swing Repaint Problem - mal wieder AWT, Swing, JavaFX & SWT 5
P 2D-Grafik Gezielter Repaint einzelner Frames in Java-Game AWT, Swing, JavaFX & SWT 6
javampir Bei repaint nix los AWT, Swing, JavaFX & SWT 2
B Swing repaint() AWT, Swing, JavaFX & SWT 3
Ernesto95 AnimationLoop - Problem bei Aufruf von repaint AWT, Swing, JavaFX & SWT 6
P 2D-Grafik repaint(); steigender RAM Verbauch AWT, Swing, JavaFX & SWT 6
Y KeyListener, GUI Thread, repaint AWT, Swing, JavaFX & SWT 7
S Applet Repaint AWT, Swing, JavaFX & SWT 3
M Programm hängt sich auf nachdem repaint() benutzt wurde AWT, Swing, JavaFX & SWT 2
R Swing Grafikfehler bei repaint AWT, Swing, JavaFX & SWT 2
N repaint() blockieren AWT, Swing, JavaFX & SWT 6
K canvas zeig nach repaint nichts an AWT, Swing, JavaFX & SWT 8
M Repaint() AWT, Swing, JavaFX & SWT 14
J Swing repaint, repaint, repaint AWT, Swing, JavaFX & SWT 8
M Applet repaint() verlangsamen AWT, Swing, JavaFX & SWT 7
R paintComponent malt bei repaint() Rahmen um Panel AWT, Swing, JavaFX & SWT 7
P EDT Problem? Kein Aufruf der repaint Methode AWT, Swing, JavaFX & SWT 6
V Applet JApplet Flackern durch Repaint AWT, Swing, JavaFX & SWT 11
kodela Problem mit repaint() AWT, Swing, JavaFX & SWT 3
N Swing Funktion repaint() updated nicht AWT, Swing, JavaFX & SWT 5
F repaint reagiert nicht AWT, Swing, JavaFX & SWT 8
S AWT Probleme mit repaint() AWT, Swing, JavaFX & SWT 2
D Repaint()? Oder was??? AWT, Swing, JavaFX & SWT 5
M Eine nicht korrekte Darstellung bei repaint() warum? AWT, Swing, JavaFX & SWT 4
T 2D-Grafik Kreis "von Hand" zeichnen -> jedesmal repaint()? AWT, Swing, JavaFX & SWT 6
R validate(), repaint funktionieren nicht! AWT, Swing, JavaFX & SWT 7
B AWT Canvas überdeckt nach repaint() JComboBox-Optionen AWT, Swing, JavaFX & SWT 2
B Swing verschachteltes GUI: repaint() ändert mehr als nur gewünschte Component AWT, Swing, JavaFX & SWT 4
S validate(), invalidate(), repaint(),... Was kommt wann? AWT, Swing, JavaFX & SWT 5
M 2D-Grafik repaint() löscht altes Bild nicht AWT, Swing, JavaFX & SWT 2
J repaint() nicht richtig? AWT, Swing, JavaFX & SWT 6
R repaint erzwingen AWT, Swing, JavaFX & SWT 3
Zettelkasten repaint() von anderen Klassen aufrufen AWT, Swing, JavaFX & SWT 4
H repaint()-Problem - 50% CPU-Auslastung AWT, Swing, JavaFX & SWT 4
P repaint während Thread läuft AWT, Swing, JavaFX & SWT 9
D Repaint Frage, Design Frage AWT, Swing, JavaFX & SWT 2
N Swing MainWindow(JFrame) aktualisieren(neuzeichnen) repaint AWT, Swing, JavaFX & SWT 4
T repaint() Problem AWT, Swing, JavaFX & SWT 2
A 2D-Grafik Repaint - Alternative? AWT, Swing, JavaFX & SWT 3
C JLabel, JTextArea, JScrollPane. repaint(); ? AWT, Swing, JavaFX & SWT 6
N Swing repaint() funktioniert nicht AWT, Swing, JavaFX & SWT 5
T Swing repaint funktioniert nur manchmal? AWT, Swing, JavaFX & SWT 6
K Jpanel repaint problem (Fullscreen) AWT, Swing, JavaFX & SWT 5
V Swing Bei repaint() tut sich nichts AWT, Swing, JavaFX & SWT 7
G ColorReader, bei Fadenkreuz zeichnen mit repaint() flackern AWT, Swing, JavaFX & SWT 19
I Canvas Repaint Probleme AWT, Swing, JavaFX & SWT 2
D Swing Actionlistener verhindert repaint?! AWT, Swing, JavaFX & SWT 2
S JLabel repaint AWT, Swing, JavaFX & SWT 8
C Swing Linux mag mein Swing-repaint() nicht... AWT, Swing, JavaFX & SWT 7
J Swing paintComponent() - repaint() - BufferedImage anzeigen AWT, Swing, JavaFX & SWT 5
A repaint() zu langsam, bitte um alternativen AWT, Swing, JavaFX & SWT 5
T Überlappende Transparenz und repaint() AWT, Swing, JavaFX & SWT 10
E EINFACHE Verständnisfrage zu repaint(), paintComponent(), usw. AWT, Swing, JavaFX & SWT 16
O Girdbag Formatierung nach repaint verloren AWT, Swing, JavaFX & SWT 2
E Swing - repaint() AWT, Swing, JavaFX & SWT 6
T Image wird nicht angezeigt?! - MediaTracker/repaint AWT, Swing, JavaFX & SWT 9
E AWT Problem mit Repaint (in Loop oder Timer) AWT, Swing, JavaFX & SWT 3
O Exception bei repaint AWT, Swing, JavaFX & SWT 3
D Fragen zu Swing, paintComponent() und repaint AWT, Swing, JavaFX & SWT 6
Dit_ Zeilenmarkierung verschwindet nach repaint() AWT, Swing, JavaFX & SWT 12
A Swing Infinite repaint loop unterbrechen AWT, Swing, JavaFX & SWT 7
hdi Swing EDT macht kein repaint() AWT, Swing, JavaFX & SWT 2
F "Verrutschen" von Komponenten bei repaint() AWT, Swing, JavaFX & SWT 9
Junker Fensterinhalt vor ausführen von repaint komplett löschen. AWT, Swing, JavaFX & SWT 2
T Fenster wird trotz repaint() und revalidate() nicht sofort neu gezeichnet AWT, Swing, JavaFX & SWT 6
E Graphics2D: altes Objekt löschen, wenn repaint aufgerufen wird AWT, Swing, JavaFX & SWT 7
J Swing Verständnis-Problem repaint(int x,int y,int width,int height) AWT, Swing, JavaFX & SWT 3
C Frame repaint hat keine Wirkung AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben