Piszę program, w którym mam JFrame i chcę usunąć wszystkie komponenty z niego, a następnie dodać tylko jeden składnik i odświeżyć ramkę. To, co mam tak daleko jest coś takiego jak kod poniżej (zwanym w obiekt, który implementuje JFrame, gdzie StartPanel implementuje JPanel):Jak usunąć wszystkie komponenty z JFrame w Javie?
removeAll();
startPanel = new StartPanel();
startPanel.setVisible(true);
add(startPanel);
revalidate();
repaint();
Jednak, kiedy uruchomić kod pokazuje puste okno (nie startPanel) a kiedy minimalizuję/zmieniam rozmiar okna, okno staje się czarne. Jeśli pominiemy removeAll()
i nie ma już elementów w JFrame, to wyświetla on startPanel dokładnie. Jakieś pomysły, jak faktycznie usunąć wszystko, a następnie uzyskać nowy panel, aby nadal się wyświetlać?
jednym słowem: [CardLayout] (http: // docs.oracle.com/javase/tutorial/uiswing/layout/card.html) –
@HovercraftFullOfEels, które mogą działać, ale czy jest jakiś inny sposób zrobienia tego ręcznie? i dlaczego nie działa funkcja removeAll(), jak sądzę, powinna? co jeśli w innych częściach kodu potrzebuję pewnych kombinacji różnych składników (nie tylko jednego pokazu na raz), więc nie chcę CardLayout? – scaevity