2013-06-01 55 views
6

Tôi có một ứng dụng xoay với JPanel, hoạt động như một cổng xem cho ứng dụng của tôi. Tôi muốn ứng dụng của tôi xóa tất cả các thành phần bên trong cổng xem khi người dùng nhấp vào một mục hoặc nút menu và tạo các thành phần mới bên trong nó. tôi biết làm thế nào để loại bỏ một thành phần từ bên trong một container, nó không phải là rõ ràng mà thành phần là bên trong hiện cổng xem, Vì vậy, tôi nghĩ rằng tôi không thể sử dụng mã dưới đây:Làm thế nào để loại bỏ tất cả các thành phần trẻ em của một container?

viewport.remove(component); 
viewport.revalidate(); 
viewport.repaint(); 

câu hỏi của tôi:

  1. Làm thế nào để loại bỏ tất cả các thành phần bên trong một thùng chứa mà không biết thành phần nào cần loại bỏ?

  2. Đây có phải là cách xóa tất cả các thành phần và tạo các thành phần khác và chèn chúng vào cổng xem chính xác không?

Trả lời

7

Câu trả lời trực tiếp cho câu hỏi của bạn là chỉ cần gọi removeAll() trên vùng chứa. Câu trả lời tốt hơn mặc dù (vì tôi nghĩ rằng câu hỏi của bạn là một ví dụ về một XY problem) là sử dụng một CardLayout và chỉ cần trao đổi các thành phần thông qua bố trí này.

4

Có một cái nhìn tại Removeall() phương pháp

Loại bỏ tất cả các thành phần từ thùng chứa này. Phương pháp này cũng thông báo cho trình quản lý bố cục để loại bỏ các thành phần khỏi bố cục của vùng chứa này thông qua phương thức removeLayoutComponent.

Các vấn đề liên quan