Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di bobc
    Registrato dal
    Feb 2004
    Messaggi
    245

    [JAVA]: "Riciclare" una jframe

    salve,

    avrei un problemino.
    Siccome ritengo che in un programma sia particolarmente inefficiente creare una miriade di finestre quando si clicca una JButton, allora ho pensato questo:
    - ad ogni clic di un JButton (a seconda delle funzionalità) il JFrame si dovrà parzialmente modificare. In particolare si dovrà rimuovere il vecchio panel e mettere il nuovo panel sopra.
    Arriviamo al dunque:
    il mio problema e che, nonostante nel codice io faccia:
    codice:
    //pseudocodice
    panel.remove(vecchioCenterPanel);
    this.centerPanel=newCenterPanel;//passato dentro il metodo da
    un'altra classe
    panel.add(this.centerPanel,BorderLayout.CENTER);
    this.getContentPane().add(panel);
    Le prime DUE volte che si chiama questo metodo funziona, ma successivamente si assiste ad una SOVRAPPOSIZIONE dei due Jpanel (nuovo su vecchio) e, naturalmente, la JFrame si impalla.

    Saranno bene accetti consigli (se magari sappiate che ci sia una classe simile, ma migliore rispetto a JFrame che permette di modificare tempestivamente il suo contenuto non esitate a rispondere

    )
    oppure ditemi se mi sono dimenticato qualche metodo.
    Comunque qualsiasi parere mi potrebbe aiutare

    Grazie

    PS: "panel" è il pannello principale della JFrame in questione

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    rimuovi il vecchio panel esplicitamente, con remove, e quindi aggiungi il nuovo. Chiama validate per assicurarti che il tutto sia re-inizializzato a dovere.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it L'avatar di bobc
    Registrato dal
    Feb 2004
    Messaggi
    245
    rimuovi il vecchio panel esplicitamente, con remove, e quindi aggiungi il nuovo.
    Già fatto

    Chiama validate per assicurarti che il tutto sia re-inizializzato a dovere
    Ok, provvederò a chimare validate()

    Grazie

    Se avrò ulteriori problemi, non esiterò a riuppare il thread

  4. #4
    Utente di HTML.it L'avatar di bobc
    Registrato dal
    Feb 2004
    Messaggi
    245
    Purtroppo non mi fuziona lo stesso.

    Comunque preciso che il JPanel "aPanel" è formato da un null layout avente sopra JLabel e JTextField.

    Il secondo JPanel "bPanel" è formato da un BorderLayout avente al centro una JTable

    Il panel principale (iniziale) ha una JTextArea.


  5. #5
    Scusa la domanda, ma al posto di continuare a inserire e rimuovere dei JPanel perchè non usi un CardLayout che ti da la possibilità di visualizzare diversi JPanel a seconda di quale JButton premi??

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  6. #6
    Utente di HTML.it L'avatar di bobc
    Registrato dal
    Feb 2004
    Messaggi
    245
    perchè non usi un CardLayout
    Grazie per il tuo consiglio, andrò a documentarmi sul CardLayout (spero che possa andar bene).

  7. #7
    Utente di HTML.it L'avatar di bobc
    Registrato dal
    Feb 2004
    Messaggi
    245
    Grazie 1000,

    con il CardLayout funziona a meraviglia

  8. #8
    Prego!

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.