我试图在JavaFX WebView组件中显示网站,但它只呈现一个空白页面。我按如下方式设置了所有内容:
MainController.java
public class MainController extends Application
{
private Stage primaryStage;
private Pane pane;
@Override
public void start(Stage primaryStage)
{
// ... Some proxy config here ...
this.primaryStage = primaryStage;
this.primaryStage.setTitle("Desmon");
initRootLayout();
}
public void initRootLayout()
{
try
{
FXMLLoader loader = new FXMLLoader();
loader.setLocation(MainController.class.getResource("../view/Main.fxml"));
pane = (Pane) loader.load();
Scene scene = new Scene(pane);
primaryStage.setScene(scene);
primaryStage.show();
MainViewController controller = loader.getController();
controller.setMain(this);
}
catch(IOException e)
{
e.printStackTrace();
}
}
public Stage getPrimaryStage()
{
return primaryStage;
}
public static void main(String[] args)
{
launch(args);
}
}
MainViewController.java
public class MainViewController
{
@FXML
private WebView webTEA;
private MainController main;
public MainViewController()
{
}
@FXML
private void initialize()
{
webTEA = new WebView();
WebEngine we = webTEA.getEngine();
we.load("http://this/is/my/url.php");
}
public void setMain(MainController main)
{
this.main = main;
}
}
Main.fxml
<Pane minHeight="500.0" minWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="view.MainViewController">
和
<children>
<WebView fx:id="webTEA" layoutX="14.0" layoutY="14.0" prefHeight="417.0" prefWidth="570.0" />
</children>
正如您所看到的,我还使用System.setProperty()
设置了一些代理设置。我也尝试过没有特定的代理设置 - 我认为这不是问题。
我不知道自己做错了什么。如果我启动应用程序,我可以看到WebView组件,但没有内容。我只能右键单击并在上下文菜单中看到&#34; Reload&#34; -item。
提前致谢。
答案 0 :(得分:0)
您正在创建新的WebView
,而不是使用FXMLLoader
创建和注入的新webTEA = new WebView();
。只需删除
initialize
从WebView
方法使用现有的WebView
。否则,您初始化一个从未添加到场景图中的新function toggleAreas1() {
var $hide = $("[class^=toggle-areas] > .row:visible");
$hide.fadeOut(function() {
if ($hide.next().length) {
$hide.next().fadeIn();
} else {
$hide.prevAll().last().fadeIn();
}
});
}
实例。