Eu segui muitos tutoriais, mas talvez eu esteja perdendo alguma coisa, porque a URL não está carregada na visualização da Web javafx e um painel branco está sendo exibido, em vez de uma página da Web. Eu tentei com http://google.com e outras páginas da Web, mas nenhuma delas está sendo exibida. O JPanel abaixo aparece em um JTabbedPane. Eu acho que o painel branco é o JFXPanel, que é preenchido abaixo.
Este é o código:
public class RtcOverview extends JPanel {
private final JFXPanel jfxPanel = new JFXPanel();
private WebEngine engine;
String url = "http://google.com";
public RtcOverview() {
super();
initComponents();
this.add(jfxPanel);
}
private void initComponents() {
Platform.runLater(new Runnable() {
@Override
public void run() {
WebView view = new WebView();
engine = view.getEngine();
engine.load(url);
Scene scene = new Scene(view);
jfxPanel.setScene(scene);
}
});
}
Respostas:
3 para resposta № 1Corre perfeitamente para mim. Eu estou anexando um MCVE, para que você possa comparar e ver o que deu errado no seu caso. Caso este MCVE falhe em sua máquina, aconselho-o a verificar suas configurações de internet e certificar-se de que suas configurações não bloqueiam o aplicativo de usar a Internet.
import javafx.application.Platform;
import javafx.embed.swing.JFXPanel;
import javafx.scene.Scene;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javax.swing.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Main extends JFrame {
private final JFXPanel jfxPanel = new JFXPanel();
private WebEngine engine;
String url = "http://google.com";
public Main() {
super();
initComponents();
getContentPane().add(jfxPanel);
setSize(500, 500);
// Kill everything on closing the frame
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
private void initComponents() {
Platform.runLater(new Runnable() {
@Override
public void run() {
WebView view = new WebView();
engine = view.getEngine();
engine.load(url);
Scene scene = new Scene(view);
jfxPanel.setScene(scene);
}
});
}
public static void main(String[] args) {
Main main = new Main();
main.setVisible(true);
}
}