Java 使用css的HTML表格格式在JTextPane中不起作用
我正在尝试为某个特定项目实现一个只查看HTML窗格。我正在使用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文件。谢谢你的时间
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’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’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’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’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’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’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"