Mam aplikację swing, w której wyświetlaję obrazy w JPanel. Jeśli aplikacja nie jest w stanie stworzyć obrazu, chcę usunąć poprzedni z JPanel i zastąpić go JTextField i wiadomości. Mogę dodać pole tekstowe, ale jest ono rysowane na górze poprzedniej zawartości, która sama jest podklasą JPanel. Oto, co mam:JPanel removeWszystko nie pozbywa się poprzednich komponentów
private void displayMessage(String message) {
JTextField tf = new JTextField(message);
cdPanel.removeAll();
cdPanel.add(tf, BorderLayout.NORTH);//tried lots of variations, inc. no layout
cdPanel.validate();
}
Jak mogę uzyskać cdPanel całkowicie przerysować sam?
Gdybyś próbował wywołanie 'cdPanel.revalidate(); cdPanel.repaint() 'zamiast' cdPanel.validate() '? Co więcej, w jaki sposób wyświetlane są obrazy na tym 'JPanelu'? Czy używasz 'JLabel' lub rysujesz je bezpośrednio na' JPanel'? –
@NIcEcOw dzięki, że działa idealnie. Proszę napisać, że mogę oznaczyć twoją odpowiedź jako :-) – jaybee
NAJBARDZIEJ WITAM SERDECZNIE I ZACHOWAJ ŚMIECH :-) Ale proszę, następnym razem, spróbuj podać informacje w pełnym zakresie, tak jakbyś wyjaśniał je dziecku, co do __Co robisz? __, __Co się spodziewasz? __ i __Co dokładnie się stało? __ W ten sposób osoba, która odpowiada, będzie mogła zapewnić lepszy wgląd w daną sytuację :-) –