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

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

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

Доброго времени суток! В ходе самообучения JavaFX, работаю над написанием WebBrowser. Основная функция браузера (отображение веб-страниц) реализирована. Теперь пытаюсь "прикручивать" фичи. Возникла проблема с созданием нового Tab в TabPane, а именно с тем, что каждый новый Tab должен содержать в себе строку для ввода адреса сайта и кнопки, как это реализовано на стартовом Tab, то есть:
<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">
        <tabs>
          <Tab fx:id="tab" text="Untitled Tab 1">
            <content>
              <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="156.0" prefWidth="299.0">
                     <children>
                        <ToolBar fx:id="toolBar" prefHeight="54.0" prefWidth="800.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0">
                          <items>
                            <Button mnemonicParsing="false" onAction="#goToPreviousPage" text="в‡ђ" />
                              <TextField fx:id="addressBar" onAction="#onEnter" prefHeight="38.0" prefWidth="592.0" />
                              <Button mnemonicParsing="false" onAction="#go" text="Go" />
                              <Button mnemonicParsing="false" onAction="#refreshPage" text="в™»" />
                          </items>
                        </ToolBar>
                        <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" />
                     </children>
                  </AnchorPane>
            </content>
        </tabs>
      </TabPane>
Новый Tab создается следующим методом:
public void newTab() {
        final Tab tab1 = new Tab("Tab " + (tabPane.getTabs().size() + 1));
        tab1.setClosable(true);
        tabPane.getTabs().add(tab1);
        tabPane.getSelectionModel().select(tab1);
    }
но, как видно с тела метода, Tab будет пустым. Вопрос: подскажите, пожалуйста, оптимальный алгоритм действий, для реализации выше сказаного, тоесть, чтобы каждый созданный Tab содержал по дефолту контент, аналогичный к стартовому Tab-у (как в fxlm-коде выше). Спасибо за ответ!

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

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

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


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

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

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