Скажем, у меня есть класс, расширяющий JPanel:
class StockScreenResultsPanel extends JPanel{
etc...
}
Затем у меня есть дескриптор этого класса, который я только что получил из родительской вкладки:
StockScreenResultsPanel childComponent = (StockScreenResultsPanel)nasdaqTab.getComponent();
Мне очень жаль, если это действительно глупо, но я хочу явно закрыть childComponent (не просто скрыть его, а исключить из приложения), и я не могу найти никаких примеров.
Может ли кто-нибудь показать мне, как явно / программно закрыть дочерний JPanel?
Я уже пробовал приведенный ниже код и получил сообщение об ошибке "StockScreenResultsPanel не может быть преобразован в окно"
childComponent.dispatchEvent(new WindowEvent( (Window)childComponent , WindowEvent.WINDOW_CLOSING));
Кроме того, если я попробую:
childComponent.dispose()
Это дает мне «не могу найти символ».
Вы не можете закрыть панель. Следовательно, ни одно из ваших решений не сработало (панель не является окном, и она не одноразовая, так как это просто JComponent. Попробуйте удаление для самой вкладки.




Как говорится в комментариях в ответ на мой вопрос выше, вы не можете закрыть панель, вместо этого вы должны использовать remove.
Вы пробовали просто удалить его с
JTabbedPane? ПосколькуJPanel- это просто компонент, он не закрывается, как окно.