validate() funtioniert nur einmal

Status
Nicht offen für weitere Antworten.

insertcoin

Aktives Mitglied
Hab jetzt ewig gesucht, aber nirgends die Lösung gefunden ..
Ich hab ein JFrame, in dem ich je nach aktuion verschiedene JPanels einschiebe ..

sieht etwa so aus ..
fenster.getContentPane().removeAll();
fenster.getContentPane().add(menü);
fenster.getContentPane().validate();

mein problem ist dass die validate() funktion irgendwie nach 2 mal nicht mehr funktioniert .. und das JFrame nur noch aktualisiert wenn ich die Fenstergröße veränder ..

danke schon mal ..

Greeetz insertcoin
 

Xams

Bekanntes Mitglied
Versuchs mal mit
fenster.getContentPane().invalidate();
fenster.getContentPane().validate();
 
G

Guest

Gast
das funktioniert nicht ..

also nochmal zum code ..

ich habe mehrere JPanels (wär echt zu unübersichtlich wenn ich alles poste) ..also z.B.

JPanel1, JPanel2, JPanel3
und ein JFrame .. und je nachdem welcher Button gedrückt wird, soll ein anderes JPanel in den Frame geladen werden .. und das funktioniert jedesmal so so ..

//das erste JPanel laden
JFrame.getContentPane().add(JPanel1);
JFrame.getContentPane().validate();

//wenn Button gedrückt wird
JFrame.getContentPane().removeAll();
JFrame.getContentPane().add(JPanel2);
JFrame.getContentPane().validate();

//wieder wenn Button gedrückt wird, und hier funktioniert dann das aktualisieren nicht mehr..
JFrame.getContentPane().removeAll();
JFrame.getContentPane().add(JPanel2);
JFrame.getContentPane().validate();

hab auch probiert jedesmal das

fenster.getContentPane().invalidate();
fenster.getContentPane().validate();
.. hinzuschreiben, aber das geht auch nicht .. könnte ja ein CardLayout verwenden, aber ich möchte das jetzt auch so irgendwie zum laufen bekommen .. ist doch komisch dass das nicht geht ..
 
S

SlaterB

Gast
mehr Code..

funktioniert das hier bei dir oder nicht?
Code:
public class TestGUI
    extends JFrame
{
    JPanel p1;
    JPanel p2;

    public TestGUI()
        throws Exception
    {
        JButton b1 = new JButton("a");
        b1.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    TestGUI.this.getContentPane().removeAll();
                    TestGUI.this.getContentPane().add(p2);
                    TestGUI.this.getContentPane().validate();
                }
            });
        p1 = new JPanel();
        p1.add(b1);
        add(p1);

        JButton b2 = new JButton("b");
        b2.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    TestGUI.this.getContentPane().removeAll();
                    TestGUI.this.getContentPane().add(p1);
                    TestGUI.this.getContentPane().validate();
                }
            });
        p2 = new JPanel();
        p2.add(b2);


        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(800, 400);
        setVisible(true);
    }

    public static void main(String[] args)
        throws Exception
    {
        new TestGUI();
    }
}
bei mir wird aber noch der alte Button gedrückt angezeigt, bis die Maus den Button-Bereich verlässt
 
S

SlaterB

Gast
naja, bisschen mehr muss man wohl noch tun,
hast du schon repaint() ausprobiert?

dann klappt bei mir alles um den Button herum und auch der Button selber

Code:
public class TestGUI
    extends JFrame
{
    JPanel p1;
    JPanel p2;

    public TestGUI()
        throws Exception
    {
        setLayout(new FlowLayout());
        JButton b1 = new JButton("a");
        b1.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    TestGUI.this.getContentPane().removeAll();
                    TestGUI.this.getContentPane().add(p2);
                    TestGUI.this.getContentPane().validate();
                    TestGUI.this.getContentPane().repaint();
                }
            });
        p1 = new JPanel();
        p1.setPreferredSize(new Dimension(100,100));
        p1.setBackground(Color.GREEN);
        p1.add(b1);
        add(p1);

        JButton b2 = new JButton("b");
        b2.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    TestGUI.this.getContentPane().removeAll();
                    TestGUI.this.getContentPane().add(p1);
                    TestGUI.this.getContentPane().validate();
                    TestGUI.this.getContentPane().repaint();
                }
            });
        p2 = new JPanel();
        p2.add(b2);


        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(800, 400);
        setVisible(true);
    }

    public static void main(String[] args)
        throws Exception
    {
        new TestGUI();
    }
}
 

insertcoin

Aktives Mitglied
tatsache .. mit repaint gehts, finds zwar immer noch komisch dass es immer einmal ohne funktioniert. und dann nicht mehr, aber ist mir jetzt auch egal .. hauptsache es läuft..

danke dir ..
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
kaoZ Validate() AWT, Swing, JavaFX & SWT 1
R validate(), repaint funktionieren nicht! AWT, Swing, JavaFX & SWT 7
S validate(), invalidate(), repaint(),... Was kommt wann? AWT, Swing, JavaFX & SWT 5
A Swing validate AWT, Swing, JavaFX & SWT 2
C JFrame und pack() / validate() AWT, Swing, JavaFX & SWT 3
I JFrame und repaint()/validate() AWT, Swing, JavaFX & SWT 2
A Komponente entfernen. Kein neuzeichnen nach validate() AWT, Swing, JavaFX & SWT 2
B JPanel aktualisieren mit validate() ! AWT, Swing, JavaFX & SWT 8
H JFrame repaint/validate Probleme AWT, Swing, JavaFX & SWT 14
D Zurücksetzen des Labels funtioniert nicht AWT, Swing, JavaFX & SWT 6
G Eintrag soll nur einmal in Listview zu sehen sein AWT, Swing, JavaFX & SWT 3
J Nur einmal?? AWT, Swing, JavaFX & SWT 2
W Swing JPanel nur einmal nach mehreren Änderungen neu zeichnen AWT, Swing, JavaFX & SWT 1
Paul15 Button funktioniert nur einmal AWT, Swing, JavaFX & SWT 9
M JavaFX WebView lässt sich nur einmal öffnen AWT, Swing, JavaFX & SWT 2
J Abbrechen muss immer einmal mehr gedrückt werden AWT, Swing, JavaFX & SWT 3
H messageDialog nur einmal anzeigen lassen? AWT, Swing, JavaFX & SWT 2
J Button Event nur einmal ausführen AWT, Swing, JavaFX & SWT 3
GianaSisters jList nur einmal ein Element anklicken AWT, Swing, JavaFX & SWT 3
S Objekt einmal laden zweimal anzeigen 3d AWT, Swing, JavaFX & SWT 6
J AWT Einmal FileDialog-Beispiel für Dumme bitte AWT, Swing, JavaFX & SWT 6
J Programm nur einmal öffnen AWT, Swing, JavaFX & SWT 3
R Noch einmal x^2 bzw. parabel AWT, Swing, JavaFX & SWT 2
E wieder einmal JTable AWT, Swing, JavaFX & SWT 5
M Mehrere Bilder auf einmal anzeigen AWT, Swing, JavaFX & SWT 9
O Swing Button löst zweimal aus, obwohl nur einmal geklickt AWT, Swing, JavaFX & SWT 3
M AWT Mehrere JToolBars auf einmal? AWT, Swing, JavaFX & SWT 5
S Objekt wird während Endlosschleife nur einmal bewegt AWT, Swing, JavaFX & SWT 2
A Card Panel wird nur einmal eingeblendet AWT, Swing, JavaFX & SWT 3
I TrayIcon aber bitte nur einmal AWT, Swing, JavaFX & SWT 2
G KeyListener funktioniert nur einmal AWT, Swing, JavaFX & SWT 2
H JFrame nur einmal öffnen AWT, Swing, JavaFX & SWT 9
M Kann ein SwingWorker nur einmal laufen? AWT, Swing, JavaFX & SWT 2
M wieder einmal JScrollPane und JList AWT, Swing, JavaFX & SWT 4
V JMenu und die Tabs von JTabbedFrame sind auf einmal schwarz AWT, Swing, JavaFX & SWT 3
J Einmal gleichzeitig auf zwei Graphics malen? AWT, Swing, JavaFX & SWT 5
M gif nur einmal abspielen AWT, Swing, JavaFX & SWT 2
H Noch einmal JList (nichts auswählen) AWT, Swing, JavaFX & SWT 2
W JTabele Aktualisieren - Wieder einmal AWT, Swing, JavaFX & SWT 4
TheJavaKid font lässt sich bei der jtextarea nur einmal ändern AWT, Swing, JavaFX & SWT 3
A Wieder einmal Event-Dispatch-Thread AWT, Swing, JavaFX & SWT 5
S JCellRenderer läuft nur einmal in bestimmte Bedingung AWT, Swing, JavaFX & SWT 5
F SWT Dialog lässt sich nur einmal öffnen AWT, Swing, JavaFX & SWT 3
U Fenster darf nur einmal existieren AWT, Swing, JavaFX & SWT 6
P JCheckbox einmal gewählt immer gewählt ? AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben