这是我用来在JEditorPane中显示谷歌的代码
String url="http://google.com";
editorPane.setEditable(false);
try {
editorPane.setPage(url);
} catch (IOException e) {}
但由于某种原因,背景总是蓝色,如果我打电话不重要
setBackgroundColor(Color.WHITE);
答案 0 :(得分:7)
正如@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");
@see BrowsePanel.java
代码段:
final JWebBrowser webBrowser = new JWebBrowser();
webBrowser.navigate("http://www.google.com");
答案 1 :(得分:1)
可能的原因是HTMLDocument解析三位数颜色代码与正常颜色代码不同。因此,所有内容都显示为蓝色,因为只设置了蓝色字节(以及绿色字节的最低4位)。
例如:#000FFF
将被解释为Create Function dbo.[getFirstTenCharacters]
(
@String Varchar(Max)
)
RETURNS Varchar(Max)
BEGIN
Declare @Xml Xml
Declare @firsttenletter Varchar(Max)
Declare @delimiter Varchar(5)
SET @delimiter=' '
SET @Xml = cast(('<a>'+replace(@String,@delimiter,'</a><a>')+'</a>') AS XML)
;With CTE AS (SELECT A.value('.', 'varchar(max)') as [Column]
FROM @Xml.nodes('a') AS FN(a) )
SELECT @firsttenletter =Stuff((SELECT ' ' + LEFT([Column],10)
FROM CTE
FOR XML PATH('') ),1,0,'')
RETURN (@firsttenletter)
END
GO
SELECT dbo.[getFirstTenCharacters]('Administration Duplication');
,它是尖锐的蓝色。
至少这解决了我在评论中提到的问题。背景中相关主题的可能原因也是如此。
答案 2 :(得分:1)
您的班级似乎已经扩展了JFrame。所以请使用editorPane对象设置颜色如下
String url="http://google.com";
editorPane.setEditable(false);
editorPane.setBackground(Color.WHITE);
try {
editorPane.setPage(url);
} ca
答案 3 :(得分:0)
我曾经尝试使用JEditorPane大约JDK1.3并且支持非常有限。据我所知,该API在提供浏览支持方面没有太大进步。
我建议您结帐DJ here。易于设置和可靠使用。