【问题标题】:Loading and displaying HTML+CSS in Java在 Java 中加载和显示 HTML+CSS
【发布时间】:2012-12-11 14:58:50
【问题描述】:

我正在尝试在我的 Java 程序中显示 Xbox 玩家卡: 这是一张GamerCard:http://gamercard.xbox.com/de-DE/anybody.card

目前我有以下:

import java.awt.Dimension;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;

import javax.swing.JEditorPane;
import javax.swing.text.html.HTMLEditorKit;

public class CardLoader extends JEditorPane {
    private static final long serialVersionUID = 1L;
    private static final String[] card = { "http://gamercard.xbox.com/de-DE/", ".card" };
    private static final String styleSheetLink = "http://gamercard.xbox.com/Content/Gamercard/default/gamercard.css";

    public CardLoader(String username) {
        HTMLEditorKit kit = new HTMLEditorKit();
        this.setEditable(false);
        this.setPreferredSize(new Dimension(200, 135));

        kit.getStyleSheet().addRule(URLCaS(styleSheetLink));
        this.setEditorKit(kit);

        try {
            this.setPage(card[0] +username +card[1]);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    String URLCaS(String url){
        InputStream in = null;
        String returner = new String();
        try {
            in = new URL(url).openStream();
            InputStreamReader inR = new InputStreamReader( in );
            BufferedReader buf = new BufferedReader( inR );
            String line;

            while ( ( line = buf.readLine() ) != null ) {
                returner += line + "\n";
            }

            in.close();
        } catch (Exception e){
            e.printStackTrace();
        }
        return returner.substring(3);
    }
}

看起来,它可以应用样式表,但不正确。

希望有人可以帮助我。

【问题讨论】:

  • 会发生什么?你得到某种错误吗?您需要在这里告诉我们更多信息。
  • Java/Swing 是一个“厚客户端”用户界面。 HTML/CSS 是一个“瘦客户端”用户界面。某些 Java/Swing 组件支持某些 HTML 子集,但对于“真正的”HTML 呈现,您应该依赖您的浏览器。例如,编写一个 Tomcat/JSP UI 而不是 Swing。
  • 不,没有任何错误,它会加载所有内容但无法正确显示,请看这里:i47.tinypic.com/34y1ct4.png 编辑:我可以将 JSP 文件添加到 Java 面板中吗? oO
  • 问:我可以将 JSP 添加到 Java 面板中吗?答:不。我建议使用 JSP 而不是 Swing。
  • hmm .. 不想使用 jsp,没关系,我刚刚发现如何将 swt 放入 jframe 中,这可以完成我的工作,不再需要 HTMLEditorKit,但现在我还有一个问题:)

标签: java html css parsing


【解决方案1】:

看看Flying-Saucer,它可以将Html渲染成Swing:

飞碟采用 XML 或 XHTML 并应用符合 CSS 2.1 的 样式表,以便呈现为 PDF(通过 iText)、图像和 使用 Swing 或 SWT 在屏幕上显示。

这里有一些截图可用:https://code.google.com/p/flying-saucer/wiki/Screenshots

【讨论】:

    猜你喜欢
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 2020-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多