Śledziłem wiele samouczków, ale może coś mi pominęło, ponieważ adres URL nie jest załadowany w przeglądarce internetowej javafx i zamiast strony internetowej wyświetlany jest biały panel. http://google.com i inne strony internetowe, ale żadna z nich nie jest wyświetlana. JPanel od dołu pojawia się w JTabbedPane. Myślę, że biały panel to JFXPanel, który jest wypełniony poniżej.
To jest kod:
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);
}
});
}
Odpowiedzi:
3 dla odpowiedzi № 1Działa doskonale dla mnie. Załączam MCVE, abyś mógł porównać i zobaczyć, co poszło nie tak w twoim przypadku. Jeśli MCVE ulegnie awarii na twoim komputerze, radzę ci sprawdzić ustawienia internetowe i upewnić się, że twoje ustawienia nie blokują aplikacji dostępu do Internetu.
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);
}
}