tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
1721
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Nov 2004
    Beiträge
    353
    Hallo,

    ich habe fogendes Problem:
    ich möchte mit einem Klick auf einen Button eine Instanz von einem JPanel in ein JFrame laden und dadurch einen JPanel ersetzen.

    Geht das:

    Zuvor hatte ich das mit einem JScrollPane in den ich einen JPanel aufgerufen hatte.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    private void btnumfrageanfordernMouseClicked(java.awt.event.MouseEvent evt) {
    ....
     
     try{
          mainPanel.setViewportView(questionPanel);
          questionPanel.setVisible(true);
        } catch (Exception e){
          mainPanel.setViewportView(null);
        }
     
    ......
    }

    In der API habe ich nichts gefunden. Hat schon mal einer sowas gemacht in der letzen Zeit ?


    die JPanels liegen einem JFrame zugrunde (BorderLayout). Ich möchte jetzt das Zentrum (center JPanel) mit einem neuen JPanel nach Klick auf einen Button ersetzen.
    Gruß
    M
    Geändert von mkoeni1 (11.01.07 um 10:48 Uhr) Grund: Kurzerläuterung
     


  2. #2
    Avatar von kroesi
    kroesi kroesi ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    166
    Hi !

    Ich würde sowas in der Art machen :

    Code java:
    1
    2
    
    frame.remove(mainPanel); 
    frame.add(questionPanel);

    Gruss,
    Krösi
     

  3. #3
    mywaymylife mywaymylife ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    12
    Hi,

    ist ganz einfach
    Code java:
    1
    2
    3
    4
    
    frame.removeAll();
    frame.add(newPanel);
    frame.validate();
    frame.repaint();
    so müßte das auf jedenfall funktionieren
     

  4. #4
    Registriert seit
    Nov 2004
    Beiträge
    353
    Hallo Leute, das funktioniert so nicht. Ich habe jetzt mal in der Methode ( void jbtnloginMouseClicked() {...} ) der Klasse LoginMain.java folgendes programmiert:

    Hinweis: Ein Objekt der Klasse MainPanel wird zuvor in der Klasse ClientMainFrame.java aufgerufen.

    Vorgehensweise der Anwendung:
    ClientMainFrame -> ClientMainFrame +(LoginMain) -> ClientMainFrame +(Questions) (hier ist mein Problem, ich bekomme keinen Wechsel nach Klick auf einen Button von LoginMain nach Questions innerhalb der Klasse ClientMainFrame, unabhängig jetzt mal auf User und PW Überprüfung !!)

    Code :
    1
    2
    3
    4
    5
    
     private void jbtnloginMouseClicked(java.awt.event.MouseEvent evt) {                                       
    // TODO add your handling code here:
         ClientMainFrame cmfl = new ClientMainFrame();
          cmfl.setVisible(true);  legt eine komplett neue Instanz der Anwendung an */ 
    }

    Das will ich ja soo aber nicht haben,dass da eine neue Anwendung gestartet wird. Ich möchte das bestehende Objekt der Klasse ClientMainFrame() weiterhin offen halten und benutzen und einen Wechsel der Zentrum der Anwendung (JFrame -> BroderLayout -> Center -> JScrollPane) vornehmen. Dort möchte ich eine neues Objekt der Klasse Questions einfügen, aber alles immernoch innerhalb der Klasse ClientMainFrame.


    Weiterer Hinweis:
    In der Klasse ClientMainFrame gibt es eine Main-Methode mit folgendem Code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    
     public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
          public void run() {
            new ClientMainFrame().setVisible(true);
          }
        });
      }
    Klar, das da eine neue Anwendung aufgeht (wie ich es weiter oben schon erwähnt hatte).

    Kann mir da Jemand eine Hilfestellung geben. Da hänge ich jetzt schon seit 3 Tagen davor.

    Vielen Dank
    M
     


  5. #5
    Registriert seit
    Nov 2004
    Beiträge
    353
    Hallo Leute,

    @mywaymylife:

    @kroesi:


    Danke für die Tipps, hat alles gepasst. Besonders.

    this.removeAll();
    questionPanel = new Questions();
    this.add(questionPanel);
    this.validate();
    this.repaint();
    Vielen Dank
    M
     


Ähnliche Themen

  1. JPanel in Jframe Laden
    Von mckruep im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 10
    Letzter Beitrag: 03.11.08, 22:48
  2. Jpanel in Jpanel laden
    Von mckruep im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 08.04.08, 19:08
  3. Antworten: 7
    Letzter Beitrag: 16.05.07, 17:03
  4. Aus JPanel Image laden
    Von guethc04 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 08.03.05, 18:13
  5. JPanel nach wert in JFrame laden
    Von joli im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 13
    Letzter Beitrag: 09.08.04, 15:49