Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [JAVA] Gestire diversi pannelli popolati da vari componenti in modo pulito.

    Buongiorno come da titolo vorrei capire quale metodo è consigliabile usare per gestire i pannelli(schede) in un applicazione per PC scritta in Java.

    Io procedo cosi':
    Creo il frame, nel quale inserisco un pannello con componenti.
    Al click, dovrei cambiare pannello, per esempio passare dal 1° pannello al 2°.
    La difficoltà sta nel fatto che mi si accavallano i componenti dei due pannelli.

    In genere come viene gestito questo problema in java?

    Grazie per l'attenzione. E buon fine settimana.
    jabjoint

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Buongiorno come da titolo vorrei capire quale metodo � consigliabile usare per gestire i pannelli(schede) in un applicazione per PC scritta in Java.

    In genere come viene gestito questo problema in java?
    Se intendi Swing, ci sono diversi modi. Il modo più semplice è usare JTabbedPane che è il componente con le classiche schede con le "linguette" su cui si può cliccare per cambiare scheda. È la soluzione più facile perché a parte aggiungere programmaticamente i componenti fornendo un testo per la linguetta, non c'è altro di particolare da fare (se non ci sono esigenze più sofisticate, ovvio).

    Un'altra possibilitè è usare il layout manager chiamato CardLayout che è in grado di visualizzare un solo componente per volta tra N vari componenti contenuti nel layout. La questione del CardLayout è che si tratta solo di un layout manager, quindi di per sè non offre nulla all'utente per cambiare componente. Sei tu che devi fornire nel frame "altri" elementi della interfaccia per effettuare la scelta. Potrebbero essere delle voci di menù, dei pulsanti o degli elementi di un combobox, ecc... È meno immediato rispetto al JTabbedPane ma hai più libera scelta su come effettuare lo switch.

    Poi ci sono tecniche più "dirette": dato un contenitore si toglie un componente e se ne mette un altro. Ma è necessario prestare molta più attenzione, bisogna vedere quale layout manager ha il contenitore in cui si fa tutto questo e quale è la sequenza corretta di operazioni per "validare" il layout. Altrimenti si rischia di ottenere effetti "strani" e inconsistenti.
    Ultima modifica di andbin; 09-04-2022 a 14:53
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Se intendi Swing, ci sono diversi modi. Il modo più semplice è usare JTabbedPane che è il componente con le classiche schede con le "linguette" su cui si può cliccare per cambiare scheda. È la soluzione più facile perché a parte aggiungere programmaticamente i componenti fornendo un testo per la linguetta, non c'è altro di particolare da fare (se non ci sono esigenze più sofisticate, ovvio).

    Un'altra possibilitè è usare il layout manager chiamato CardLayout che è in grado di visualizzare un solo componente per volta tra N vari componenti contenuti nel layout. La questione del CardLayout è che si tratta solo di un layout manager, quindi di per sè non offre nulla all'utente per cambiare componente. Sei tu che devi fornire nel frame "altri" elementi della interfaccia per effettuare la scelta. Potrebbero essere delle voci di menù, dei pulsanti o degli elementi di un combobox, ecc... È meno immediato rispetto al JTabbedPane ma hai più libera scelta su come effettuare lo switch.

    Poi ci sono tecniche più "dirette": dato un contenitore si toglie un componente e se ne mette un altro. Ma è necessario prestare molta più attenzione, bisogna vedere quale layout manager ha il contenitore in cui si fa tutto questo e quale è la sequenza corretta di operazioni per "validare" il layout. Altrimenti si rischia di ottenere effetti "strani" e inconsistenti.
    Al momento ho diciamo, "risolto" rimuovendo i componenti e ricreandomeli. Tuttavia mi pare più pulito usare il JTabbedPane di cui mi hai gentilmente dato l'informazione. Anche se i componenti non sono molti.
    Provengo dal linguaggio VB. net e allora ero abituato ad avere la "pappa" pronta.
    Nel caso vedo che diventi troppo complicato riscriverò il codice.
    Grazie molte.
    jabjoint

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.