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!

È stato utile?

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
scroll top