WebBrowser: Создание нового Tab с контентом - Java
Формулировка задачи:
Доброго времени суток!
В ходе самообучения JavaFX, работаю над написанием WebBrowser.
Основная функция браузера (отображение веб-страниц) реализирована. Теперь пытаюсь "прикручивать" фичи.
Возникла проблема с созданием нового Tab в TabPane, а именно с тем, что каждый новый Tab должен содержать в себе строку для ввода адреса сайта и кнопки, как это реализовано на стартовом Tab, то есть:
Новый Tab создается следующим методом:
но, как видно с тела метода, Tab будет пустым.
Вопрос: подскажите, пожалуйста, оптимальный алгоритм действий, для реализации выше сказаного, тоесть, чтобы каждый созданный Tab содержал по дефолту контент, аналогичный к стартовому Tab-у (как в fxlm-коде выше).
Спасибо за ответ!
<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>
public void newTab() {
final Tab tab1 = new Tab("Tab " + (tabPane.getTabs().size() + 1));
tab1.setClosable(true);
tabPane.getTabs().add(tab1);
tabPane.getSelectionModel().select(tab1);
}Решение задачи: «WebBrowser: Создание нового Tab с контентом»
textual
Листинг программы
Tab tab = new Tab();
TextField field = new TextField();
field.setPromtText("адрес");
tab.setGraphic(field);
tabOne.setText(null);//для того, чтобы убрать стандартный label вкладки