Visualizzazione dei risultati da 1 a 7 su 7

Discussione: "sostituire" JPanel

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755

    "sostituire" JPanel

    Ho una frame con all'interno vari panel "spezzettati" in modo da poter gestire la "modifica" di essi più facilmente.Il mio intento è quello di "sostituire" un panel all'interno della frame con un altro panel,in pratica lo scopo è quello di attraverso la sostituzione fra i due panel operare modifiche di grafica,vi mostro questa immagine sperando chiarisca meglio il problema:

    come posso fare?
    avevo provato nel fare:se viene premuto il bottone "pippo"
    jPanel4=new Pannello();
    Pannello è una classe le cui istanze rappresentano JPanel(estende JPanel) e in essa è definita la grafica del Pannello (quello che prima,per spiegarvi,chiamavo jPanel5,che viene creato come istanza di Pannello)
    successivamente ho provato col repaint() sia del pannello jPanel1 e addirittura con la "speranza del disperato" ( ) anche invocandolo il repaint alla frame ma non succede niente,evidentemente sbaglio in qualcosa,che magari è anche banale,ma la mia ruggine nel programmare mi impedisce di essere lucidissimo nel capire e risolvere l'errore.
    Dunque come posso fare?
    Ps. sto programmando in NetBeans,che a livello di grafica fa molto in automatico,nel caso in questione ,da quanto ho capito analizzando il codice,utilizza i GroupLayout ,avevo anche provato facendo: jPanel4Layout(che sarebbe il suo GroupLayout).replace(jPanel4,new Pannello());
    ma niente.

  2. #2
    Se hai la reference dell'altro JPanel, prova assegnargli l'oggetto che vuoi sostituirgli e fare revalidate() al JFrame.

    codice:
    JPanel jpanel4 = jpanel5;
    frame.revalidate()
    lolide
    Java Programmer

    Informati

  3. #3

    Re: "sostituire" JPanel

    Originariamente inviato da zipangulu
    Il mio intento è quello di "sostituire" un panel all'interno della frame con un altro panel,
    come posso fare?
    Potresti anche usare i metodi add e remove ereditati da Container.

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    @lolide: ma il metodo revalidate() non esiste o sbaglio?mi dà errore e guardando sulle API in JFrame non lo trovo ereditato da nessuna parte

    @vincenzothebest:se stessi programmando con textpad,dove avrei il pieno controllo del codice,avrei fatto sicuramente così,attrraverso il container avrei sostituito,ma sto lavorando in netBeans e fa molto in automatico,traccia di container non ne vedo nel codice,ho visto che usa i GroupLayout...maaa bu...

  5. #5
    Originariamente inviato da zipangulu
    se stessi programmando
    Dovresti farlo...fare le cose in modo automatico non porta mai a grandi risultati, in quanto non si ha il totale controllo di quello che si intende fare.

  6. #6
    Originariamente inviato da zipangulu
    @lolide: ma il metodo revalidate() non esiste o sbaglio?mi dà errore e guardando sulle API in JFrame non lo trovo ereditato da nessuna parte
    Si infatti è validate().
    Si comunque sarebbe più "corretto" dal punto di vista stilistico usare add e remove.
    lolide
    Java Programmer

    Informati

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755
    Originariamente inviato da VincenzoTheBest
    Dovresti farlo...fare le cose in modo automatico non porta mai a grandi risultati, in quanto non si ha il totale controllo di quello che si intende fare.

    Hai ragione,infatti per anni ho programmato utilizzando semplici editor di testo come textpad,ma il problema sorge nel caso in cui si vogliono fare programmi a livello di grafica più complessi(ad esempio ora mi sto cimentando nel fare un client mail).E' difficle programmando completamente "a mano" creare,graficamente parlando,un qualcosa di "bello" tramite Textpad,per quanto tu (tu in generale) sappia giocare con i gestori di layout non riuscirai mai (e sopratutto se ci riuscirai ci metterai mooolto tempo in più) a creare una interfaccia grafica come un IDE tipo Netbeans permette.
    Ps. ero un fervente sostenitore di textpad anche io fino a qualche giorno fa,ma le "difficoltà grafiche" mi hanno portato verso gli IDE

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 © 2025 vBulletin Solutions, Inc. All rights reserved.