WebBrowser: Создание нового Tab с контентом - Java

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! В ходе самообучения JavaFX, работаю над написанием WebBrowser. Основная функция браузера (отображение веб-страниц) реализирована. Теперь пытаюсь "прикручивать" фичи. Возникла проблема с созданием нового Tab в TabPane, а именно с тем, что каждый новый Tab должен содержать в себе строку для ввода адреса сайта и кнопки, как это реализовано на стартовом Tab, то есть:
Листинг программы
  1. <TabPane fx:id="tabPane" layoutY="38.0" prefHeight="361.0" prefWidth="600.0" tabClosingPolicy="UNAVAILABLE" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="38.0">
  2. <tabs>
  3. <Tab fx:id="tab" text="Untitled Tab 1">
  4. <content>
  5. <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="156.0" prefWidth="299.0">
  6. <children>
  7. <ToolBar fx:id="toolBar" prefHeight="54.0" prefWidth="800.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0">
  8. <items>
  9. <Button mnemonicParsing="false" onAction="#goToPreviousPage" text="в‡ђ" />
  10. <TextField fx:id="addressBar" onAction="#onEnter" prefHeight="38.0" prefWidth="592.0" />
  11. <Button mnemonicParsing="false" onAction="#go" text="Go" />
  12. <Button mnemonicParsing="false" onAction="#refreshPage" text="в™»" />
  13. </items>
  14. </ToolBar>
  15. <WebView fx:id="web" layoutY="54.0" prefHeight="462.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="56.0" />
  16. </children>
  17. </AnchorPane>
  18. </content>
  19. </tabs>
  20. </TabPane>
Новый Tab создается следующим методом:
Листинг программы
  1. public void newTab() {
  2. final Tab tab1 = new Tab("Tab " + (tabPane.getTabs().size() + 1));
  3. tab1.setClosable(true);
  4. tabPane.getTabs().add(tab1);
  5. tabPane.getSelectionModel().select(tab1);
  6. }
но, как видно с тела метода, Tab будет пустым. Вопрос: подскажите, пожалуйста, оптимальный алгоритм действий, для реализации выше сказаного, тоесть, чтобы каждый созданный Tab содержал по дефолту контент, аналогичный к стартовому Tab-у (как в fxlm-коде выше). Спасибо за ответ!

Решение задачи: «WebBrowser: Создание нового Tab с контентом»

textual
Листинг программы
  1. Tab tab = new Tab();
  2. TextField field = new TextField();
  3. field.setPromtText("адрес");
  4. tab.setGraphic(field);
  5. tabOne.setText(null);//для того, чтобы убрать стандартный label вкладки

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут