Как метод javafx fxml добавляет активные видимые события в текущий интерфейс? - PullRequest
0 голосов
/ 23 июня 2019

Существует вкладка tabPane, которая имеет две панели, A и B, которые созданы fxml. Когда программа запускается, она вызывает метод initialize () для ее инициализации. Функция, которую я буду реализовывать, находится в методе Но я не могу понять свои потребности. Эффект, которого я хочу достичь, заключается в том, что при запуске программы, когда я щелкаю по интерфейсу B, запускается событие, то есть интерфейс B. Когда активация видна, выполняется определенный метод.

public class TestLogPane extends AnchorPane implements Initializable {

    @Override
    public void initialize(URL location, ResourceBundle resources) {
            webView.getEngine().load("https://wwww.xxx.com/member/login.jhtml");
            webView.getEngine().getLoadWorker().stateProperty()
                    .addListener((obs, oldValue, newValue) -> {
                        if (newValue == Worker.State.SUCCEEDED) {
                            if (webView.getEngine().getLocation().contains("item.taobao.com")) {
                               System.out.println(webView.getEngine().getLocation());
                            }
                        }
                    });
    }

}

<TestLogPane fx:id="anchorPane" prefHeight="814.0" prefWidth="1414.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.fendo.huasheng.component.pane.TestLogPane">
   <children>
      <WebView fx:id="webView" prefHeight="814.0" prefWidth="1414.0" />
      <Button layoutX="1043.0" layoutY="22.0" onAction="#onGet" mnemonicParsing="false" prefHeight="48.0" prefWidth="80.0" text="Go" />
      <Button layoutX="980.0" layoutY="22.0" onAction="#onLoad" mnemonicParsing="false" prefHeight="48.0" prefWidth="80.0" text="Load" />
   </children>
</TestLogPane>

Tabpane fxml определяется следующим образом

<HomePane xmlns="http://javafx.com/javafx"
          xmlns:fx="http://javafx.com/fxml"
          fx:controller="com.fendo.huasheng.component.pane.HomePane"
          prefHeight="800.0" prefWidth="1024.0">
    <fx:define>
        <fx:include source="TestLogPane.fxml" fx:id="testLogPane" />
        <fx:include source="xxxx.fxml" fx:id="xxxx" />
    </fx:define>
    <children>
        <BorderPane prefHeight="750.0" prefWidth="900.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="2.0">
            <center>
                <TabPane prefHeight="750.0" prefWidth="757.0"  BorderPane.alignment="CENTER">
                    <tabs>
                        <Tab text="xxxx" content="$xxxx"></Tab>
                        <Tab text="Taobao" content="$testLogPane"></Tab>
                    </tabs>
                </TabPane>
            </center>
        </BorderPane>
    </children>
</HomePane>
...