Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    [Java] chiudere jpanel, HOW TO?

    salve ragazzi ho un problemino con lo swing...

    in pratica funziona così:
    c'è una classe dove gli passo i paramentri per render visibile il jpanel impostandogli la dimensione e la posizione della creazione:
    codice:
    public class FinestraSwing extends JFrame{
        public FinestraSwing(String s, int x_Loc, int y_Loc, int x_Siz, int y_Siz, JPanel pann){
            super(s);
            setLocation(x_Loc, y_Loc);
            setSize(x_Siz, y_Siz);
            getContentPane().add(pann);
            setVisible(true);
            pann.setVisible(true);
    }
    fin qui tutto ok... per reder visibile una finestra basta fare:
    codice:
    FinestraSwing finestra = new FinestraSwing("newFinestra", 410, 80, 469, 411, jPanel14);
    il mio problema ora è associare ad un bottone vari eventi.. tra cui anche il chiudere la finestra...
    come sappiamo lo swing supporta la chiusura tramite X in alto a destra (classica chiusura).
    per gli eventi da eseguire nessun problema..
    ma quando devo chiudere questa jPanel nn riesco..

    ho provato a fare:
    codice:
    jPanel.setVisible(false);
    ma niente praticamente mi nasconde i componeti presenti nel jPanel, lasciando aperto appunto il pannello...


    è tutto il pomeriggio che ci sbatto...
    scusate sono alle prime armi con la gui grafica :-[

    grazie a tutti in anticipo!!!!!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,327

    Moderazione

    Java ha il forum dedicato.

    Sposto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Scusa, ma parli di JPanel e posti il codice di un JFrame, non capisto cosa devi fare di preciso.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Potrei sbagliare, ma non è che tu ti aspetti che l'area precedentemente occupata dal pannello (o peggio, tutto il frame) "sparisca" completamente?

  5. #5
    Originariamente inviato da satifal
    Scusa, ma parli di JPanel e posti il codice di un JFrame, non capisto cosa devi fare di preciso.

    probabilmente nn ho ben capito cosa faccio...

    io praticamente associo ad un bottone dentro un jPanel (precedentemete già creato) questa azione:
    codice:
    FinestraSwing finestra = new FinestraSwing("newFinestra", 410, 80, 469, 411, jPanel14);
    facendo così mi crea un nuovo jpanel, o sbaglio??
    oppure mi crea un ulteriore jframe+jpanel ??(e lo visualizzo)

    praticamente ho associato più jPanel ad un unico jFrame (credo.. è possibile ciò?)
    quindi vorrei chiudere un jPanel e non il jframe che sta in fondo a tutti...

    perchè se io faccio semplicemente

    codice:
    setVisible(false);
    mi chiude il jframe che sta dietro a tutti i jpanel che ho aperto tramite i vari bottoni..

  6. #6
    Originariamente inviato da desa
    Potrei sbagliare, ma non è che tu ti aspetti che l'area precedentemente occupata dal pannello (o peggio, tutto il frame) "sparisca" completamente?

    no io vorrei associare l'evento di chiusura del jpanel, ad un bottone... però come detto in precenza probabilmente nn mi è chiaro qualcosa (sicuramente), il jframe deve rimanere aperto..

    mi sorge un dubbio, non è che per ogni jpanel devo fare tanti jframe?

    io faccio un solo jframe e tanti jpanel che vengono poi creati e visualizzati tramite il comando finestraswing.
    Ma questa finestraswing cosa fa??

    probabilmente dovrei fare una pausa è dalle 9 di questa mattina che sto programmando e nelle ultime 3 ore mi son imbattutto su questo problema..

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da starter11
    no io vorrei associare l'evento di chiusura del jpanel, ad un bottone... però come detto in precenza probabilmente nn mi è chiaro qualcosa (sicuramente),
    Un JPanel non si può "chiudere"... al massimo lo "nascondi" :master: :master:
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #8
    Originariamente inviato da Alex'87
    Un JPanel non si può "chiudere"... al massimo lo "nascondi" :master: :master:

    hmmm già potrebbe andare...

    come lo nascondo????

  9. #9
    allora vediamo se riesco a spiegarmi meglio..

    praticamente io creo un jframe e gli faccio un jpanel visibile

    dentro questo jpanel ci sono due bottoni che a sua volta hanno associati come eventi:

    codice:
    FinestraSwing finestra = new FinestraSwing("newFinestra", 410, 80, 469, 411, jPanel14);
    chiaramente con jpanel differenti... così alla pressione del bottone mi crea e visualizza il nuovo jpanel...

    ora veniamo al dunque, supponiamo che

    --JFrame|
    |---->jpanel1|
    |--------->jpanel2|
    |--------->jpanel3|

    sarà così?? cmq allora io dentro al jpanel2 ho vari bottoni tra cui uno che fa varie operazioni e alla fine deve chiudere appunto il jpanel2...

    però se faccio
    codice:
    jpanel2.setVisible(false);
    mi pulisce il pannello cancella tutto però rimane aperto...
    se faccio semplicemente
    codice:
    setVisible(false);
    mi chiude jframe e mi lascia tutti gli altri aperti...

    chissà se son andato meglio..

  10. #10
    La classe FinestraSwing estende JFrame:

    codice:
    public class FinestraSwing extends JFrame {
        ...
    }
    Per cui ogni volta che crei una nuova istanza di tale classe:

    codice:
    FinestraSwing finestra = new FinestraSwing(...);
    crei un nuovo JFrame con all'interno un JPanel. Per cui tutte le finestre che vedi sono dei JFrame.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.