Этот фрагмент кода я получил от https://stackoverflow.com/a/6868039/2240900Добавить JInternalFrame в JDesktopPane с помощью кнопки в другой JInternalFrame
как добавить internal2 к desktoppane1 с помощью кнопки размещены где-то в internal1.
В ActionListener добавлены к кнопке вы можете использовать код как следующий, чтобы получить ссылку на рабочую панель:
Container container = SwingUtilities.getAncestorOfClass(JDesktopPane.class, (Component)event.getSource());
if (container != null)
{
JDesktopPane desktop = (JDesktopPane)container;
JInternalFrame frame = new JInternalFrame(...);
desktop.add(frame);
}
Мой вопрос заключается в том, чтобы добавить еще один JInternalFrame если кнопка находиться в другом JInternalFrame? ex: добавьте innerX в desktoppane1, используя кнопку, помещенную где-то в inner2/internal3/internalX, где каждая внутренняя часть была создана с помощью кнопки внутри innerX, не использующей строку меню.
Любая помощь будет оценена по достоинству. Благодарю.
Почему мне нужно экстернализовать слушателя, а какой Лисстер вы имеете в виду? Мне нужно только добавить innerX в desktoppane1, показывая, что он отображается как окно внутри моего приложения, а не как окно вне моего приложения. – user2240900
Тогда я не понимаю вашу проблему. Покажите нам код (полный SSCCE), который работает для одного кадра, и покажите нам, почему он не работает для большего количества кадров. – splungebob