Come rimuovere un elemento specifico da un JPanel utilizzando BorderLayout / GroupLayout?
-
26-10-2019 - |
Domanda
Ho bisogno di rimuovere il Component
nel Center
del JPanel
, ma dopo alcuni tentativi non prevalgono.
Ho provato il metodo qui:
Rimozione elemento CENTER da un JPanel utilizza BorderLayout
Ma il metodo della risposta produce un errore di compilazione:
Type mismatch: cannot convert from LayoutManager to BorderLayout
I Am interpretare la risposta sbagliata?
In aggiunta, sono anche curioso di sapere se posso aggiornare solo un singolo componente da un GroupLayout. Qualcuno potrebbe dirmi come fare?
EDIT: @mre: Ecco il codice:
BorderLayout layout = panel.getLayout();
panel.remove(layout.getLayoutComponent(BorderLayout.CENTER));
Che è fondamentalmente lo stesso come nel collegamento.
Grazie a tutti!
Soluzione
Si deve downcast il gestore di layout a BorderLayout:
BorderLayout layout = (BorderLayout) panel.getLayout();
Ma se si sa quale componente si trova nel centro, si può semplicemente rimuovere:
panel.add(myComponent, BorderLayout.CENTER);
...
panel.remove(myComponent);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow