JTextpane上的HTML桌面边框

时间:2014-10-20 07:56:56

标签: java html swing html-table jtextpane

我想在JTextPane中仅显示html表的顶部边框。下面的代码在Java 1.7中运行良好但在Java 1.6中没有出现边框。有没有办法在Java 1.6中实现它?

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JTextPane;

public class textpanedemo{

public static void main(String[] args) {

    String html = "<html><table><tr style=\"border-top:1px solid red\"><td>asd</td></tr></table></html>";

    JTextPane jPane = new JTextPane();
    jPane.setContentType("text/html");

    jPane.setText(html);

    JFrame frame = new JFrame("HtmlDemo");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(new BorderLayout());
    frame.getContentPane().add(jPane);

    frame.pack();
    frame.setVisible(true);
}
}

1 个答案:

答案 0 :(得分:1)

Java 1.6xxx仅支持HTML 3.2及更低版本,因此表格边框在Java 1.6xxx中不起作用。

我创建了一个小的解决方法,希望对您有用:

String html = "<html><table><tr style=\"background-color:red;\"><td style=\"background-color:white;margin-top:1px\">asd</td></tr></table></html>";

基本上,我将<tr>的背景设置为红色,然后将<td>的背景设置为白色,并给它一点余地以显示{{1}的一些红色}}。不幸的是,边缘似乎也显示了底部红色背景的1px,我试图修复但是无法修复。

以下是在Java 1.6中运行的结果:

enter image description here

我还创建了第二种解决方法,它比上一种方法更加简洁,只显示顶部边框:

<tr>

此解决方法的结果是,您需要创建新的String html = "<html><table style=\"background-color:red;padding-top:1px;\"><tr style=\"background-color:white;\"><td>asd</td></tr></table></html>"; 元素(具有相同的样式)来创建新行,而不是创建新的<tr>元素来创建新行。以下是使用此HTML创建两行的示例:

<table>

(请注意该html中有两个表,两行。)

enter image description here

接受你的选择。它们都有点hacky,但我想你需要做的就是支持旧的Java版本。 :/