Java 使用css的HTML表格格式在JTextPane中不起作用

Java 使用css的HTML表格格式在JTextPane中不起作用,java,html,css,swing,jtextpane,Java,Html,Css,Swing,Jtextpane,我正在尝试为某个特定项目实现一个只查看HTML窗格。我正在使用JTextPane来呈现HTML,内容类型为“text/HTML”。我在我的输入HTML中有表格,所以为了给这些表格加上边框,我考虑使用css样式,但不幸的是没有成功 如果我把border属性作为表本身的一部分,那么它可以工作,但不能 与css样式 下面是我创建的用于重新创建问题的示例代码content1不会为我的表格创建边框,但content2会创建边框。我想使用content1方法,因为我有很多带有表格的html文件。谢谢你的时间

我正在尝试为某个特定项目实现一个只查看HTML窗格。我正在使用
JTextPane
来呈现HTML,内容类型为
“text/HTML”
。我在我的输入HTML中有表格,所以为了给这些表格加上边框,我考虑使用css样式,但不幸的是没有成功

如果我把border属性作为表本身的一部分,那么它可以工作,但不能 与css样式

下面是我创建的用于重新创建问题的示例代码content1不会为我的表格创建边框,但content2会创建边框。我想使用content1方法,因为我有很多带有表格的html文件。谢谢你的时间,任何帮助都将不胜感激

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


public class TestTextPane {

    private static int X = 200;
    private static int Y = 200;
    private static int W = 600;
    private static int H = 400;

    public static final String content1 = "<html>\r\n" + 
            "  <head>\r\n" + 
            "    <style type=\"text/css\">\r\n" + 
            "      <!--\r\n" + 
            "        table,th, td { border: 1px solid black }\r\n" + 
            "        body, p { font-family: Courier; font-size: 14 }\r\n" + 
            "      -->\r\n" + 
            "    </style>\r\n" + 
            "    \r\n" + 
            "  </head>\r\n" + 
            "  <body>\r\n" + 
            "    <div align=\"left\">\r\n" + 
            "      <b>Q: What is the difference between GET and POST method? </b>\r\n" + 
            "    </div>\r\n" + 
            "    <p>\r\n" + 
            "      A:\r\n" + 
            "    </p>\r\n" + 
            "    <table>\r\n" + 
            "      <tr>\r\n" + 
            "        <th width=\"50%\">\r\n" + 
            "          GET\r\n" + 
            "        </th>\r\n" + 
            "        <th>\r\n" + 
            "          POST\r\n" + 
            "        </th>\r\n" + 
            "      </tr>\r\n" + 
            "      <tr>\r\n" + 
            "        <td>\r\n" + 
            "          GET is a safe method (idempotent)\r\n" + 
            "        </td>\r\n" + 
            "        <td>\r\n" + 
            "          POST is non-idempotent method\r\n" + 
            "        </td>\r\n" + 
            "      </tr>\r\n" + 
            "      <tr>\r\n" + 
            "        <td>\r\n" + 
            "          We can send limited data with GET method and it&#8217;s sent in the header \r\n" + 
            "          request URL\r\n" + 
            "        </td>\r\n" + 
            "        <td>\r\n" + 
            "          we can send large amount of data with POST because it&#8217;s part of the \r\n" + 
            "          body.\r\n" + 
            "        </td>\r\n" + 
            "      </tr>\r\n" + 
            "    </table>\r\n" + 
            "    <br>\r\n" + 
            "    <br>\r\n" + 
            "    \r\n" + 
            "  </body>\r\n" + 
            "</html>";

    public static final String content2 = "<html>\r\n" + 
    "  <head>\r\n" + 
    "    <style type=\"text/css\">\r\n" + 
    "      <!--\r\n" + 
    "        body, p { font-family: Courier; font-size: 14 }\r\n" + 
    "      -->\r\n" + 
    "    </style>\r\n" + 
    "    \r\n" + 
    "  </head>\r\n" + 
    "  <body>\r\n" + 
    "    <div align=\"left\">\r\n" + 
    "      <b>Q: What is the difference between GET and POST method? </b>\r\n" + 
    "    </div>\r\n" + 
    "    <p>\r\n" + 
    "      A:\r\n" + 
    "    </p>\r\n" + 
    "    <table border=1>\r\n" + 
    "      <tr>\r\n" + 
    "        <th width=\"50%\">\r\n" + 
    "          GET\r\n" + 
    "        </th>\r\n" + 
    "        <th>\r\n" + 
    "          POST\r\n" + 
    "        </th>\r\n" + 
    "      </tr>\r\n" + 
    "      <tr>\r\n" + 
    "        <td>\r\n" + 
    "          GET is a safe method (idempotent)\r\n" + 
    "        </td>\r\n" + 
    "        <td>\r\n" + 
    "          POST is non-idempotent method\r\n" + 
    "        </td>\r\n" + 
    "      </tr>\r\n" + 
    "      <tr>\r\n" + 
    "        <td>\r\n" + 
    "          We can send limited data with GET method and it&#8217;s sent in the header \r\n" + 
    "          request URL\r\n" + 
    "        </td>\r\n" + 
    "        <td>\r\n" + 
    "          we can send large amount of data with POST because it&#8217;s part of the \r\n" + 
    "          body.\r\n" + 
    "        </td>\r\n" + 
    "      </tr>\r\n" + 
    "    </table>\r\n" + 
    "    <br>\r\n" + 
    "    <br>\r\n" + 
    "    \r\n" + 
    "  </body>\r\n" + 
    "</html>";

    /**
     * @param args
     */
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setBounds(X, Y, W, H);

        JTextPane pane = new JTextPane();
        pane.setContentType("text/html");
        pane.setEditable(false);

        JScrollPane scrollPane = new JScrollPane(pane);
        scrollPane.setBounds(X,Y,W,H);

        frame.getContentPane().add(scrollPane);

        pane.setText(content2); // change content here

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

}
import javax.swing.JFrame;
导入javax.swing.JScrollPane;
导入javax.swing.JTextPane;
公共类TestTextPane{
私有静态int X=200;
私有静态int Y=200;
专用静态int W=600;
专用静态int H=400;
公共静态最终字符串content1=“\r\n”+
“\r\n”+
“\r\n”+
“\r\n”+
“\r\n”+
“\r\n”+
“\r\n”+
“\r\n”+
“\r\n”+
“Q:GET和POST方法之间有什么区别?\r\n”+
“\r\n”+
“\r\n”+
“A:\r\n”+
“

\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “获取\r\n”+ “\r\n”+ “\r\n”+ “POST\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “GET是一个安全的方法(幂等)\r\n”+ “\r\n”+ “\r\n”+ “POST是非幂等方法\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “我们可以使用GET方法发送有限的数据,它将在头中发送\r\n”+ “请求URL\r\n”+ “\r\n”+ “\r\n”+ “我们可以通过POST发送大量数据,因为它是\r\n”+ “正文。\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “
\r\n”+ “
\r\n”+ “\r\n”+ “\r\n”+ ""; 公共静态最终字符串content2=“\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “Q:GET和POST方法之间有什么区别?\r\n”+ “\r\n”+ “\r\n”+ “A:\r\n”+ “

\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “获取\r\n”+ “\r\n”+ “\r\n”+ “POST\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “GET是一个安全的方法(幂等)\r\n”+ “\r\n”+ “\r\n”+ “POST是非幂等方法\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “我们可以使用GET方法发送有限的数据,它将在头中发送\r\n”+ “请求URL\r\n”+ “\r\n”+ “\r\n”+ “我们可以通过POST发送大量数据,因为它是\r\n”+ “正文。\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “
\r\n”+ “
\r\n”+ “\r\n”+ “\r\n”+ ""; /** *@param args */ 公共静态void main(字符串[]args){ JFrame=新JFrame(); 框架立根(X,Y,W,H); JTextPane=新的JTextPane(); pane.setContentType(“text/html”); pane.setEditable(false); JScrollPane scrollPane=新的JScrollPane(窗格); 滚动窗格.设置边界(X,Y,W,H); frame.getContentPane().add(滚动窗格); pane.setText(content2);//在此处更改内容 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
我从样式中删除了注释符号,并为字体大小添加了单位

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

public class TestTextPane {

    private static int X = 200;
    private static int Y = 200;
    private static int W = 600;
    private static int H = 400;

    public static final String content1 = "<html>\r\n" +
            "  <head>\r\n" +
            "    <style type=\"text/css\">\r\n" +
            "        table, th, td { border: 2px solid #FF0000; }\r\n" +
            // be sure to add a unit to the font size, otherwise it is invalid
            "        body, p { font-family: Courier; font-size: 14px; }\r\n" +
            "    </style>\r\n" +
            "    \r\n" +
            "  </head>\r\n" +
            "  <body>\r\n" +
            "    <div align=\"left\">\r\n" +
            "      <b>Q: What is the difference between GET and POST method? </b>\r\n" +
            "    </div>\r\n" +
            "    <p>\r\n" +
            "      A:\r\n" +
            "    </p>\r\n" +
            "    <table>\r\n" +
            "      <tr>\r\n" +
            "        <th width=\"50%\">\r\n" +
            "          GET\r\n" +
            "        </th>\r\n" +
            "        <th>\r\n" +
            "          POST\r\n" +
            "        </th>\r\n" +
            "      </tr>\r\n" +
            "      <tr>\r\n" +
            "        <td>\r\n" +
            "          GET is a safe method (idempotent)\r\n" +
            "        </td>\r\n" +
            "        <td>\r\n" +
            "          POST is non-idempotent method\r\n" +
            "        </td>\r\n" +
            "      </tr>\r\n" +
            "      <tr>\r\n" +
            "        <td>\r\n" +
            "          We can send limited data with GET method and it&#8217;s sent in the header \r\n" +
            "          request URL\r\n" +
            "        </td>\r\n" +
            "        <td>\r\n" +
            "          we can send large amount of data with POST because it&#8217;s part of the \r\n" +
            "          body.\r\n" +
            "        </td>\r\n" +
            "      </tr>\r\n" +
            "    </table>\r\n" +
            "    <br>\r\n" +
            "    <br>\r\n" +
            "    \r\n" +
            "  </body>\r\n" +
            "</html>";

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setBounds(X, Y, W, H);

        JTextPane pane = new JTextPane();
        pane.setContentType("text/html");
        pane.setEditable(false);

        JScrollPane scrollPane = new JScrollPane(pane);
        scrollPane.setBounds(X,Y,W,H);

        frame.getContentPane().add(scrollPane);

        pane.setText(content1); // change content here

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

import javax.swing.JFrame;
导入javax.swing.JScrollPane;
导入javax.swing.JTextPane;
公共类TestTextPane{
私有静态int X=200;
私有静态int Y=200;
专用静态int W=600;
专用静态int H=400;
公共静态最终字符串content1=“\r\n”+
“\r\n”+
“\r\n”+
表,th,td{border:2px solid 35; FF0000;}\r\n+
//请确保在字体大小中添加单位,否则无效
正文,p{字体系列:Courier;字体大小:14px;}\r\n+
“\r\n”+
“\r\n”+
“\r\n”+
“\r\n”+
“\r\n”+
“Q:GET和POST方法之间有什么区别?\r\n”+
“\r\n”+
“\r\n”+
“A:\r\n”+
“

\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “获取\r\n”+ “\r\n”+ “\r\n”+ “发布\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “\r\n”+ “GET是一个安全的方法(幂等)\r\n”+ “\r\n”+ “\r\n”+
body table { border: 1px solid red }
public static final String content1 = "<html>\r\n"
        + "  <head>\r\n"
        + "    <style type=\"text/css\">\r\n"
        + "      <!--\r\n"
        + "        table, th, td { border: 1px solid black }\r\n"
        + "        body table { border: 1px solid red }\r\n"
        + "        body, p { font-family: Courier; font-size: 14; }\r\n"
        + "      -->\r\n"
        + "    </style>\r\n"