2013-11-28 2 views
2

Я пытаюсь разрешить пользователю создавать новую вкладку в моем приложении.Как скопировать содержимое с одной вкладки на другую в JavaFX?

Я пробовал tab.setContent(tag.getContent());, но он перемещает содержимое одной вкладки в другую, оставляя первый пустой.

Есть ли способ сделать копию содержимого вкладки?

+0

Единственный способ, которым я могу это сделать, это использовать конструктор копирования для содержимого вкладки. Создайте подкласс чего-то вроде VBox, а затем создайте конструктор, который принимает (VBox) tabContent и копирует его в новый экземпляр. Я хотел бы знать, есть ли лучший способ! – brian

+0

Я играл с ним. Думаю, я нашел другой путь. Я сделал отдельный FXML-файл только для вкладок. И создал экземпляр нового FXMLLoader и использовал его для создания нового корня узла (loader.load() ;, который дает мне якорь в качестве корня). Затем создал новый объект Tab и использовал корень для установки содержимого объекта табуляции: mynewTab.setContent (tabroot). – melkhaldi

+0

Это будет работать, потому что оно создает новый экземпляр, но не копирует никакие измененные данные. Представьте себе TextArea, где пользователь что-то ввел. Все, что не задано в файле FXML, не будет создано. – brian

ответ

1

Я сделал отдельный файл FXML для вкладки, создал загрузчик для файла FXMl, а затем загрузил его, чтобы получить корень. Используйте root для создания сцены и, наконец, добавьте сцену в TabPane!

Смежные вопросы