java - 浏览器使用 JEditorPane 强制蓝色背景

标签 java swing url colors jeditorpane

这是我用来在 JEditorPane 中显示 google 的代码

String url="http://google.com";    
editorPane.setEditable(false);
    try {
        editorPane.setPage(url);
    } catch (IOException e) {}

但由于某种原因,背景总是蓝色的,如果我打电话也没关系

setBackgroundColor(Color.WHITE);

最佳答案

正如@AndrewThompson 在评论中指出的那样,JEditorPane 确实落后了,它仅支持 HTML 3.2 和 CSS1 的一个子集,并且无法真正渲染任何现代网页。

我强烈建议使用替代方案,例如:

  • JavaFX WebView

    代码片段:(没有依赖,你可以按原样运行)

    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.*;
    
    public class JavaFxBrowser implements Runnable {
        private WebEngine webEngine;
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new JavaFxBrowser());
        }
    
        public void loadURL(final String url) {
            Platform.runLater(() -> {
                webEngine.load(url);
            });
        }
    
        @Override
        public void run() {
            // setup UI
            JFrame frame = new JFrame();
            frame.setVisible(true);
            frame.setPreferredSize(new Dimension(1024, 600));
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
            JFXPanel jfxPanel = new JFXPanel();
            frame.getContentPane().add(jfxPanel);
            frame.pack();
    
            Platform.runLater(() -> {
                WebView view = new WebView();
                webEngine = view.getEngine();
    
                jfxPanel.setScene(new Scene(view));
            });
    
            loadURL("http://www.google.com");
        }
    }
    
  • Flying Saucer

    代码示例:

    XHTMLPanel panel = new XHTMLPanel();
    panel.setDocument("http://www.google.com");
    

    @见BrowsePanel.java

  • NativeSwing

    代码片段:

    final JWebBrowser webBrowser = new JWebBrowser();
    webBrowser.navigate("http://www.google.com");
    

    @见SimpleWebBrowserExample.java

关于java - 浏览器使用 JEditorPane 强制蓝色背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22579965/

相关文章:

java - 在 Java 中将 addAll 与同步列表一起使用

java - 实例化 DefaultBoundedRangeModel

java - 绘制JFrame难度

string - 如何使用 Go 将网页内容转化为字符串

java - JRE 8 与 weblogic 10.3.6 (11g

java - 比较两个可调整大小的数组集

java - 南面板和北面板使用哪个布局管理器?

java - 更改焦点 JTextField 的文本

url - my/route 是否应该重定向到/en/?

python - 清理用户输入以包含在 href 属性中?