Co ciekawe idę po drugiej stronie tej samej kwestii i jestem zaskoczony, ludzie są upvoting drugą odpowiedź, jak jest on wyraźnie prosząc o dynamicznie stworzony składniki, a nie komponenty już utworzone pod nazwą zmiennej który jest dostępny, zamiast anonimowo tworzonych obiektów.
Odpowiedź jest dość prosta. Użyj polecenia getComponents() do iterowania przez tablicę komponentów dodanych do JPanel. Znajdź rodzaj komponentu, który chcesz usunąć, na przykład za pomocą instanceof. W moim przykładzie usunę wszystkie JCheckBoxes dodane do mojego JPanel.
Make sure to revalidate and repaint your panel, otherwise changes will not appear
Komponent jest od java.awt.Component.
//Get the components in the panel
Component[] componentList = panelName.getComponents();
//Loop through the components
for(Component c : componentList){
//Find the components you want to remove
if(c instanceof JCheckBox){
//Remove it
clientPanel.remove(c);
}
}
//IMPORTANT
panelName.revalidate();
panelName.repaint();
proszę pisać kod tak możemy pomóc. –
Aby uzyskać lepszą pomoc wcześniej, dołącz [SSCCE] (http://www.sscce.org) – mre
Czy używasz metody "public void remove (int index)" zamiast "public void remove (Component comp)"? Opublikuj SSCCE, jeśli chcesz uzyskać lepszą odpowiedź. –