我想把一個html表格放入一個可編輯的JTextPane中。所以你可以像Excel表格一樣編輯表格。當我嘗試這樣做時,這些奇怪的col和colgroup盒子不斷出現。另外,表中似乎不工作就像他們應該..JTextPane中的HTML表格顯示奇怪的「表格」框
下面是一個例子:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextPane;
import javax.swing.border.EmptyBorder;
import javax.swing.text.Document;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.StyleSheet;
public class htmlEditor2 extends JFrame {
private JPanel contentPane;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
htmlEditor2 frame = new htmlEditor2();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public htmlEditor2() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
Foo f = new Foo();
f.setText("<html><body><table border=\"1\" width=\"985\" cellpadding=\"3\" cellspacing=\"0\" style=\"table-layout: fixed; border-collapse: collapse; border-width: 0px; border-color: #010101; \"><colgroup><col width=\"328\"></col> <col width=\"328\"></col> <col width=\"328\"></col> </colgroup><tr><td align=\"left\" valign=\"top\" width=\"321\" style=\"border: solid #010101 1px; \"><div align=\"left\"><font face=\"Arial\"><span style=\"font-size:8pt\">row 1</span></font></div></td><td align=\"left\" valign=\"top\" width=\"321\" style=\"border: solid #010101 1px; \"><div align=\"left\"><font face=\"Arial\"><span style=\"font-size:8pt\">row2</span></font></div></td><td align=\"left\" valign=\"top\" width=\"321\" style=\"border: solid #010101 1px; \"><div align=\"left\"><font face=\"Arial\"><span style=\"font-size:8pt\">row3</span></font></div></td></tr><tr><td align=\"left\" valign=\"top\" width=\"321\" style=\"border: solid #010101 1px; \"><div align=\"left\"><span style=\"font-size: 8pt;\"> </span></div></td><td align=\"left\" valign=\"top\" width=\"321\" style=\"border: solid #010101 1px; \"><div align=\"left\"><span style=\"font-size: 8pt;\"> </span></div></td><td align=\"left\" valign=\"top\" width=\"321\" style=\"border: solid #010101 1px; \"><div align=\"left\"><span style=\"font-size: 8pt;\"> </span></div></td></tr><tr><td align=\"left\" valign=\"top\" width=\"321\" style=\"border: solid #010101 1px; \"><div align=\"left\"><span style=\"font-size: 8pt;\"> </span></div></td><td align=\"left\" valign=\"top\" width=\"321\" style=\"border: solid #010101 1px; \"><div align=\"left\"><span style=\"font-size: 8pt;\"> </span></div></td><td align=\"left\" valign=\"top\" width=\"321\" style=\"border: solid #010101 1px; \"><div align=\"left\"><span style=\"font-size: 8pt;\"> </span></div></td></tr></table><div align=\"left\"> </div></body></html>");
contentPane.add(f);
}
class Foo extends JTextPane {
public Foo() {
super();
HTMLEditorKit kit = new HTMLEditorKit();
setEditorKit(kit);
StyleSheet styleSheet = kit.getStyleSheet();
styleSheet.addRule(""); //in case I need to add a CSS
Document doc = kit.createDefaultDocument();
setDocument(doc);
}
}
}
我會粘貼HTML的格式良好的版本,但我不知道如何在這裏做...
所以是的..我只是想知道如何擺脫我的表中的那些奇怪的colgroup和col盒以及如何使表正常工作!
更新:所以事實證明,我從檢索HTML表格從autoformats的HTML表格,包括<colgroup>
和<col>
標籤。所以我有一些後續問題:JTextPane是否支持當前的html版本?當然,我如何讓JTextPane不顯示那些奇怪的盒子?
你是個天才。我拿出了
嗨。我更新了這個問題。事實證明,我正在檢索html的服務會自動重新格式化html代碼,以包含表格的
如果你可以指向一個URL,你可以使用我上面給出的解決方案。 – Reimeus