Cardlayout

di il
5 risposte

Cardlayout

Ho una finestra nella quale voglio cambiare il panel centrale in base ai pulsanti cliccati e ho deciso di utilizzare il cardLayout (scelta giuta?) mi sembra quella he fa al mio caso . Ora tutto va bene solo che non mi visualizza nulla rimane sempre il panel di partenza quello vuoto cosa sbaglio? come modificare?


Codice:

public void centrov(String val){
JPanel centro=new JPanel();
centro.setLayout(new CardLayout());
JPanel card1 = new JPanel();
JPanel card2 = new JPanel();



CardLayout cardLayout = new CardLayout();
/*qui in base al valore del bottone che passo mi crea la pagina e la torna indietro e mi dovrebbe visualizzare quella pagina fino a quando non clicco un'altro bottone*/
switch(val){
case("pr"):
card1.add(HomeProd.centro("pr"));
centro.add(card1,"C1");
break;
case("pa"):
card2.add(HomePan.centro("pa"));
centro.add(card2,"C2");
break;

}


if(val.equals("pa")){
cardLayout.show(centro, "C2");
}else{
cardLayout.show(centro,"C1");
}


setVisible(true);
return;
}

5 Risposte

  • Re: Cardlayout

    Bri ha scritto:


    Ho una finestra nella quale voglio cambiare il panel centrale in base ai pulsanti cliccati e ho deciso di utilizzare il cardLayout (scelta giuta?) mi sembra quella he fa al mio caso .
    Può andare bene. CardLayout è solo un layout manager, non è un componente grafico, non ha alcuna user interface di per sé per far cambiare componente all'utente. La scelta di come/quando cambiare il componente visualizzato è a carico del programmatore.

    Se invece volevi qualcosa con una user interface già fatta, potevi usare il componente JTabbedPane che è il classico componente a schede con le "linguette" selezionabili.

    Bri ha scritto:


    Ora tutto va bene solo che non mi visualizza nulla rimane sempre il panel di partenza quello vuoto cosa sbaglio? come modificare?
    centro.setLayout(new CardLayout());


    CardLayout cardLayout = new CardLayout();
    Il codice non è molto ben contestualizzato, non si capisce bene dove si trova. Ma ad ogni modo, vedo che vengono creati 2 CardLayout. Chiaramente non va bene.
  • Re: Cardlayout

    Ho tolto un cardLayout solo che non visualizza comunque mi posti il codice el cardlayout per favore?
  • Re: Cardlayout

    Bri ha scritto:


    Ho tolto un cardLayout solo che non visualizza comunque mi posti il codice el cardlayout per favore?
    Beh, non c'è moltissimo da fare:
    1) tieni il CardLayout referenziato da qualche parte (tipicamente: variabile di istanza) settandolo nel "contenitore".
    2) all'inizio, quando crei la GUI inserisci ciascuno dei vari componenti con:

    contenitore.add(componenteX, "nome card");

    3) quando successivamente vuoi mostrare una card:

    cl.show(contenitore, "nome card da mostrare");


    dove: cl è il CardLayout e contenitore è un qualunque componente (ma tipicamente è un JPanel) che fa da "contenitore" per i componenti-carta.
  • Re: Cardlayout

    Si ho fatto risolto avevo scordato il getcontntPane() (che svista) ora ho un'altro problema cambio scheda al cliccare e mi visualizza i dati della scheda sottostante come mai?
  • Re: Cardlayout

    Bri ha scritto:


    cambio scheda al cliccare e mi visualizza i dati della scheda sottostante come mai?
    Cioè? Meglio se chiarisci (magari con del codice)
Devi accedere o registrarti per scrivere nel forum
5 risposte