Schermo diviso

di il
4 risposte

Schermo diviso

Ho creato un'applicazione Android per i tablet utilizzando i fragment. In particolare per utilizzare l'intero schermo ho diviso in due parti, a sinistra un elenco con il menu e a destra sono chiamati i fragment. Ora sto sviluppando un'applicazione desktop in java (NetBeans) e vorrei sapere con quali componenti swing posso ottenere lo stesso risultato del tablet.
Pensavo al JFrame e al suo interno fare lo switch dei vari JPanel, potrebbe essere la strada giusta?
Grazie per il consiglio

4 Risposte

  • Re: Schermo diviso

    kontos02 ha scritto:


    Ora sto sviluppando un'applicazione desktop in java (NetBeans) e vorrei sapere con quali componenti swing posso ottenere lo stesso risultato del tablet.
    In Swing puoi usare uno qualunque dei layout manager che permettono di suddividere un "contenitore" in più parti. GridLayout, ad esempio.
    Se invece vuoi splittare in due parti un'area ma in modo che l'utente possa "trascinare" il divisore per dare più spazio all'una o l'altra parte, allora c'è il componente JSplitPane.

    Precisa meglio. Anche perché una interfaccia Swing non è molto "paragonabile" a quanto possibile su un dispositivo mobile.
  • Re: Schermo diviso

    Per spiegare meglio ho allegato un immagine dell'app desktop che stò iniziando a sviluppare..
    Nella parte sinistra ci sono i bottoni (menu) ,al click dei bottoni devo cambiare ciò che è presente nella parte destra (in Android lo faccio con i Fragment), ma in swing quale componente posso utilizzare? inoltre è possibile farlo?
    Spero di aver spiegato meglio, grazie
    Allegati:
    11099_d3062688ccd38652df0f183717fb2152.png
    11099_d3062688ccd38652df0f183717fb2152.png
  • Re: Schermo diviso

    kontos02 ha scritto:


    al click dei bottoni devo cambiare ciò che è presente nella parte destra, ma in swing quale componente posso utilizzare?
    Se vuoi che più componenti, UNO alla volta, possano essere visibili nella stessa area fisica, sì, è possibile e ci sono pure svariate soluzioni:

    a) Il layout manager CardLayout. E' fatto apposta per questo ma presuppone di inserire a priori nel CardLayout tutti i componenti necessari. A seconda di quali/quanti sono, potrebbe non essere una buona idea riguardo occupazione di memoria e prestazioni.

    b) Se si usa un altro layout manager che permette di fare stare più componenti nella stessa locazione o anche senza un layout manager (=posizionamento assoluto), si può "giocare" sulla visibilità dei componenti. Ne rendi visibile tu uno per volta e gli altri li tieni nascosti. Questa gestione è a tuo carico. Questo è l'approccio usato sotto-sotto di nascosto proprio dal CardLayout (che si fa carico lui di questa logica).

    c) Scambio "fisico" del componente in un contenitore. Togli il componente precedente e ne metti un altro: contenitore.remove(compPrecedente) poi contenitore.add(compNuovo)
    Se il contenitore ha un layout manager, va però "rivalidato" e qui ... purtroppo dipende dal layout manager usato. Per quelli basilari come BorderLayout/FlowLayout ecc.. basta un contenitore.validate()
  • Re: Schermo diviso

    Il CardLayout nel mio caso sembra la soluzione migliore, grazie mille
Devi accedere o registrarti per scrivere nel forum
4 risposte