Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123

    [java] Click su bottoni in tootlbar e contenuto mostrato nel JFrame

    Ciao a tutti,

    Avrei bisogno di alcuni chiarimenti..

    Ho una JFrame che contiene una toolbar con del pulsanti. Ciascuno dei pulsanti (avrei pensato creare una classe che estenda JPanel visto che i dati per ogni pulsante sono parecchi), deve mostrare il suo contenuto all'interno di quel JFrame (per capirci sotto alla tollbar).. com'è possibile fare in modo che questo accada?

    Premetto che devo ancora mettere giù la struttura, ma avrei pensato a questo.

    Grazie!! ^^

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [java] Click su bottoni in tootlbar e contenuto mostrato nel JFrame

    Originariamente inviato da Patrick Jane
    Ho una JFrame che contiene una toolbar con del pulsanti. Ciascuno dei pulsanti (avrei pensato creare una classe che estenda JPanel visto che i dati per ogni pulsante sono parecchi), deve mostrare il suo contenuto all'interno di quel JFrame (per capirci sotto alla tollbar).. com'è possibile fare in modo che questo accada?
    Solo 1 visualizzato per volta tra N pannelli? Se i pannelli sono predefiniti e li puoi istanziare già tutti all'inizio, allora usa un CardLayout.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Si, uno alla volta!

    Il punto però è che all'interno di questi bottoni, ci sarà molto codice..quindi per ogni bottone avrei appunto pensato di mettere un JPanel (una classe che estende JPanel), e mostrare il suo contenuto sotto alla toolbar,
    in sostanza, immagina il browser, con 4 o 5 bottoni al posto della barra degli indirizzi (che ovviamente non cambieranno), e che cliccando su uno di questi mi venga mostrato il contenuto nella nella finestra vera e propria..

    Il contenuto sarà circa JSplitPane, JTextField..e probabilmente JTable.

    Grazie! ^^

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Patrick Jane
    Si, uno alla volta!
    Per queste cose, se non si può/vuole usare un JTabbedPane (che ha già le "linguette" per la selezione) generalmente la cosa più semplice è usare un pannello con un CardLayout che contiene gli N componenti di cui solo 1 da mostrare per volta. Chiaramente in questo caso la interfaccia per la selezione può essere quella che si vuole: pulsanti (qui sarebbe meglio dei JToggleButton), voci di menù, combobox o altro.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Originariamente inviato da andbin
    Per queste cose, se non si può/vuole usare un JTabbedPane (che ha già le "linguette" per la selezione) generalmente la cosa più semplice è usare un pannello con un CardLayout che contiene gli N componenti di cui solo 1 da mostrare per volta. Chiaramente in questo caso la interfaccia per la selezione può essere quella che si vuole: pulsanti (qui sarebbe meglio dei JToggleButton), voci di menù, combobox o altro.
    Ok, grazie!
    Non mi è però chiaro come mostrarlo proprio "nel Frame", sotto alla toolbar..cioè, lo fa "da solo" appena viene cliccato?

    Grazie! ^^

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Patrick Jane
    Non mi è però chiaro come mostrarlo proprio "nel Frame", sotto alla toolbar..cioè, lo fa "da solo" appena viene cliccato?
    Visto che la interfaccia per la selezione è a tuo carico (pulsanti, menù, combobox ecc...) ovviamente CardLayout non può fare nulla di automatico. Sei tu che devi invocare il show() di CardLayout per chiedere di mostrare un certo componente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Originariamente inviato da andbin
    Visto che la interfaccia per la selezione è a tuo carico (pulsanti, menù, combobox ecc...) ovviamente CardLayout non può fare nulla di automatico. Sei tu che devi invocare il show() di CardLayout per chiedere di mostrare un certo componente.
    Si, intendevo questo! Cioè, precisamente se non devo fare cose "contorte" per togliere gli elementi da quel frame e farne visualizzare uno successivo!

    Ho un altra domanda..

    Mi ritrovo con un JPanel che contiene N*M etichette..queste etichette hanno un MouseListener (precisamente, ascolta sul JPanel che contiene le etichette). Il JPanel è in un JFrame.. al verificarsi di una certa azione, io ho bisogno di far si che tutte le etichette ivi contenute, siano rimosse, e vengano quindi aggiunte altre etichette. (si tratta del campo minato).

    Se hai bisogno il codice dimmi pure che te lo posto! ^^

    Grazie! ^^

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    ..ho un problema che non riesco a risolvere!

    Ho creato la struttura sopra indicata, più per test che per altro, ed il risultato è che non mi vengono mostrati i componenti..

    All'interno della classe che estende JPanel ho un JSplitPane, questo contiene nella parte sinistra JTabbedPane e nell'altra un JPanel.. all'aggiunta dello splitPane alla finestra, vedo i componenti, però, come fossero all'interno di un altra area..i componenti sono al centro, in una sorta di rettangolo.. che devo fare per fargli occupare tutto lo spazio sul JFrame? (senza ovviamente coprire la toolbar).

    Grazie! ^^

    PS: mi riferivo a questo praticamente ieri sera..

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Patrick Jane
    io ho bisogno di far si che tutte le etichette ivi contenute, siano rimosse, e vengano quindi aggiunte altre etichette. (si tratta del campo minato).
    Immagino quello sia il momento in cui fai ripartire il gioco da capo, con la eventuale possibilità di avere la griglia più grande o più piccola ... giusto?
    Basta solo vedere quale layout manager hai usato ... GridLayout? Bene, rimuovi tutti i componenti dal contenitore (quello che ha il GridLayout), cambi numero di righe/colonne al GridLayout, inserisci i nuovi componenti e fai un validate() sul contenitore o a livello più estremo un pack() sul frame in modo che tutto si dimensioni al "giusto".

    Originariamente inviato da Patrick Jane
    vedo i componenti, però, come fossero all'interno di un altra area..i componenti sono al centro, in una sorta di rettangolo..
    Qui purtroppo non è molto chiaro. Senza vedere uno screenshot o vedere il codice mi pare un po' difficile.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Originariamente inviato da andbin
    Immagino quello sia il momento in cui fai ripartire il gioco da capo, con la eventuale possibilità di avere la griglia più grande o più piccola ... giusto?
    Basta solo vedere quale layout manager hai usato ... GridLayout? Bene, rimuovi tutti i componenti dal contenitore (quello che ha il GridLayout), cambi numero di righe/colonne al GridLayout, inserisci i nuovi componenti e fai un validate() sul contenitore o a livello più estremo un pack() sul frame in modo che tutto si dimensioni al "giusto".

    Qui purtroppo non è molto chiaro. Senza vedere uno screenshot o vedere il codice mi pare un po' difficile.
    Grazie per la risposta!!

    Dunque, per quanto riguarda il campo minato ho utilizzato proprio un GridLayout, ho fatto ciò che mi hai detto e funziona!! L'avevo fatto, ma non settavo il layout di nuovo ..quindi vedevo i vecchi componenti!

    Ti posto uno screen del software in cui non sono stato chiaro, è in allegato.

    http://img155.imageshack.us/img155/6471/schermatal.png


    Se così non ti è chiaro ti posto il source! ^^


    Grazie!! ^^

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.