Come effettuare un componente invisibile, senza cambiare la posizione di altri elementi
-
14-11-2019 - |
Domanda
Ci sono due pulsanti: "Avanti" e "Indietro" per passare nell'elenco.Quando la fine ha raggiunto la fine, il pulsante "Avanti" per scomparire, ma il pulsante "indietro" non dovrebbe saltare al suo posto.Io uso il setVisible (false)
, ma il pulsante 'indietro' salta al posto del "successivo".Location Manager è GridbaGlayout.
Soluzione
Posizionare il pulsante in un contenitore JPanel con cardlayout insieme con un altro jpanel vuoto (o jlabel).Quando vorresti nascondere il pulsante basta swap card nel contenitore.
Altri suggerimenti
.Io uso il
setVisible (false)
prova invece
setEnabled(false)
.Non rimuoverà la rappresentazione visiva del pulsante, che risolve il layout, ma lo renderà non focalizzato e sembra diverso.Questo è il 'percorso di almeno sorpresa' per l'utente finale tipico.
..Location Manager è GridbaGlayout.
BTW - Se sei bloccato nel rendere invisibile il pulsante, un
GridLayout
raggiungere l'effetto di contenere le posizioni degli altri pulsanti.
Ci sono due pulsanti: "Next"
& "Back"
, questo è motivo di utilizzare