repaint Probleme

ErfinderLabyrinth

Bekanntes Mitglied
Hi,
ich habe ein Fenster erstellt und wollte etwas Code schreiben, sodass wenn man auf einem Button klicht das JFrame sich leert
Java:
this.components.createButton(0, 0, 150, 50, "Start", e->{
    getWindow().removeAll();
    getWindow().revalidate();
    Main.onStart();
});
Kurze Erklärung: es erstellt im jframe ein Button mit den oben übergebenden ActionListener( e->{ )

Main.onStart()
Code:
public static void onStart() {
    System.out.println("Start");
}

Fehler:
die Components werden zwar entfernt, das Fenster wird aber nicht mehr aktualisiert

Vermutete Fehlerursache:
Das Programm stoppt direkt nach dem Aufruf von revalidate, was die Methode nicht mag

Ich benutze Windows und Java 17.0.4
 

KonradN

Super-Moderator
Mitarbeiter
Füg nach dem revalidate noch ein repaint Aufruf hinzu.

Revalidate fordert den LayoutManager auf, Größen neu zu berechnen aber das neu malen wird dadurch nicht angefordert.
 

KonradN

Super-Moderator
Mitarbeiter
@Jw456 hat den Punkt vermutlich gefunden. Du hast im JFrame ein ContentPane und das kann man nicht entfernen. Daher verändert sich nichts.

getWindow() liefert das JFrame (muss aber dann mit einem cast zu dem JFrame gemacht werden!) um da dann getContentPane().removeAll() aufzurufen.

Oder man setzt ein neues ContentPane mit setContentPane.
 

Jw456

Top Contributor
@Jw456 hat den Punkt vermutlich gefunden. Du hast im JFrame ein ContentPane und das kann man nicht entfernen. Daher verändert sich nichts.

getWindow() liefert das JFrame (muss aber dann mit einem cast zu dem JFrame gemacht werden!) um da dann getContentPane().removeAll() aufzurufen.

Oder man setzt ein neues ContentPane mit setContentPane.
er ist im EventListener

 

KonradN

Super-Moderator
Mitarbeiter
Das kleine Test-Programm zum spielen:
Java:
package de.kneitzel;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;

public class Main {

    static JFrame frame;

    public static void main(String[] args) {
        int dx=400;
        int dy=300;

        frame = new JFrame("Test");
        frame.setSize(400,300);
        JButton button = new JButton("Test");
        button.addActionListener(Main::onButtonClich);
        JPanel panel = new JPanel(new BorderLayout());
        panel.add(button, BorderLayout.NORTH);
        frame.setContentPane(panel);
//        frame.add(button);
        frame.setVisible(true);
    }

    private static void onButtonClich(ActionEvent actionEvent) {
        frame.getContentPane().removeAll();
        frame.repaint();
    }
}

Ich hatte da dann auch mal ein BorderLayout genommen um zu schauen, ob es da Unterschiede im Verhalten gibt, aber das ContentPane konnte immer einwandfrei leer gemacht werden.

Wobei ich da eher eine neue Pane setzen würde, aber das ist erst einmal egal.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Swing Probleme mit repaint() bzw. JScrollPane AWT, Swing, JavaFX & SWT 7
L NullpointerException und Probleme mit repaint() AWT, Swing, JavaFX & SWT 11
S AWT Probleme mit repaint() AWT, Swing, JavaFX & SWT 2
I Canvas Repaint Probleme AWT, Swing, JavaFX & SWT 2
G Probleme mit repaint / paint AWT, Swing, JavaFX & SWT 6
W Probleme mit repaint() AWT, Swing, JavaFX & SWT 8
D Repaint Probleme AWT, Swing, JavaFX & SWT 4
F Probleme mit repaint AWT, Swing, JavaFX & SWT 4
I Probleme mit repaint() AWT, Swing, JavaFX & SWT 4
X Probleme mit aktualisierung durch Repaint() Methode AWT, Swing, JavaFX & SWT 3
R Fenster Repaint Probleme AWT, Swing, JavaFX & SWT 7
H JFrame repaint/validate Probleme AWT, Swing, JavaFX & SWT 14
S Repaint Probleme bei Swing (JScrollPane größe ändern) AWT, Swing, JavaFX & SWT 15
D Repaint Funktioniert nicht AWT, Swing, JavaFX & SWT 2
D JUNG Repaint function does not work AWT, Swing, JavaFX & SWT 2
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
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
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
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
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
Luk10 repaint() auch in anderen Klassen! AWT, Swing, JavaFX & SWT 6
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

Ähnliche Java Themen

Neue Themen


Oben