Я пытаюсь написать веб-сканер с графическим интерфейсом, используя JavaFX, однако я не могу заставить свой графический интерфейс отображать ссылки, найденные веб-сканером.Это мой метод начала.Я хочу, чтобы urlsText обновлялся до this.urls.Любая помощь будет принята с благодарностью!Спасибо!
@Override
public void start(Stage primaryStage) {
this.c = new WebCrawler();
primaryStage.setTitle("WebCrawler");
//layout1
TextField searchInput = new TextField();
TextField keyword = new TextField();
Label searchLabel = new Label("Website URL");
searchLabel.setLabelFor(searchInput);
Label keywordLabel = new Label("Search for keyword");
keywordLabel.setLabelFor(keyword);
Button searchButton = new Button();
searchButton.setText("Search!");
searchButton.setOnAction(e -> {
if (this.checkURL(searchInput.getText())) {
this.urls = this.c.run(searchInput.getText(), keyword.getText());
primaryStage.setScene(scene2);
}
});
VBox layout1 = new VBox(10);
layout1.setPadding(new Insets(20, 20, 20, 20));
layout1.getChildren().addAll(searchLabel, searchInput, keywordLabel, keyword, searchButton);
scene1 = new Scene(layout1, 300, 250);
//layout 2
Text urlsText = new Text(10, 50, this.urls);
urlsText.setFont(new Font(20));
Label urlsLabel = new Label("URLs found: ");
urlsLabel.setLabelFor(urlsText);
Button backButton = new Button();
backButton.setText("Back");
backButton.setOnAction(e -> primaryStage.setScene(scene1));
Button serializeButton = new Button();
serializeButton.setText("Save as .txt File");
serializeButton.setOnAction(e -> c.serialize());
VBox layout2 = new VBox(10);
layout2.setPadding(new Insets(20, 20, 20, 20));
layout2.getChildren().addAll(urlsLabel, urlsText, backButton, serializeButton);
scene2 = new Scene(layout2, 300, 250);
primaryStage.setScene(scene1);
primaryStage.show();
}