Java 在窗格中追加文本
我正在开发一个应用程序,它使用JEditorPane显示数据库中的数据 EditorPane将以HTML格式追加Java 在窗格中追加文本,java,swing,jeditorpane,Java,Swing,Jeditorpane,我正在开发一个应用程序,它使用JEditorPane显示数据库中的数据 EditorPane将以HTML格式追加resultSet。 我的问题是,JEditorPane会擦除第一个结果集,而只显示最后一个结果集 以下是我的代码摘录: while(rs.next()){ String htmlComent = "<"html>"<b> + "<"head><"title><"/title>"</>
resultSet
。
我的问题是,JEditorPane会擦除第一个结果集
,而只显示最后一个结果集
以下是我的代码摘录:
while(rs.next()){
String htmlComent = "<"html>"<b>
+ "<"head><"title><"/title>"</>
+ "<"body>"<b>
+ "<"hr>"
+ "<"b align='left'> Subject"+" : "+rs.getString(1)+"<"/b><"br>"
+ "<"b align='left'> Institution"+": "+rs.getString(2)+"<"/b><"br>"
+ "<"b align='left'> Date" +" "+": "+rs.getString(3)+"</b><br>"
+ "<"b align='left'> Minuted To "+": "+rs.getString(4)+"</b><"br>"
+ "<"b align='left'> Minuted by "+": "+rs.getString(5)+"<"/b><"br>"
+ "<"hr>"
+ "<"p align = 'left' ><"B>Comment<"/B><"/p>"
+ rs.getString(6)
+ "<"/body>"
+ "<"/head>"
+ "<"/html>";
append(htmlComent+ "\n" );
/**
* This method appends text to a JEditorPane
*/
public void append(String s) {
try {
HTMLEditorKit kit = new HTMLEditorKit();
HTMLDocument doc2 = new HTMLDocument();
editorPane.setEditorKit(kit);
editorPane.setDocument(doc2);
HTMLDocument doc = (HTMLDocument)editorPane.getDocument();
kit.insertHTML(doc, doc2.getLength(), s, 0, 0, null);
//kit.insertHTML(doc, doc2.getLength(),, s, 0, 0, null);
} catch(BadLocationException |IOException exc) {
JOptionPane.showMessageDialog(this, exc.getMessage());
}
}
有人能告诉我哪里出了问题吗?String htmlcommon=“”;
String htmlComent = "<html><b> <head><title></title></head><body><b>";
while(rs.next())
{
htmlComent=htmlcoment +
"<"hr>"
+ "<"b align='left'> Subject"+" : "+rs.getString(1)+"<"/b><"br>"
+ "<"b align='left'> Institution"+": "+rs.getString(2)+"<"/b><"br>"
+ "<"b align='left'> Date" +" "+": "+rs.getString(3)+"</b><br>"
+ "<"b align='left'> Minuted To "+": "+rs.getString(4)+"</b><"br>"
+ "<"b align='left'> Minuted by "+": "+rs.getString(5)+"<"/b><"br>"
+ "<"hr>"
+ "<"p align = 'left' ><"B>Comment<"/B><"/p>"
+ rs.getString(6) +"</br>";
}
htmlcoment=htmlcomment+ "</body></html>";
while(rs.next())
{
HTMLCOMMENT=HTMLCOMMENT+
“主题”+:“+rs.getString(1)+”
+日期“+”+:“+rs.getString(3)+”
”
+ ""
+ ""
+“评论”
+rs.getString(6)+“”;
}
htmlcomment=htmlcomment+“”;
您的字符串追加应该是这样的,这样resultset中的所有数据都将被追加到一个字符串中,然后您可以在while循环之前在任何地方使用该字符串初始化HtmlContent字符串,在循环内构建字符串,并在循环外调用append方法。问题在于
append()
方法,并在字符串htmlContent
中
您应该在while之前启动htmlContent
,如下所示:
StringBuilder htmlContent = new StringBuilder();
htmlContent.append("<html>");
htmlContent.append("<head>");
htmlContent.append("<title>Your title goes Here</title>");
htmlContent.append("</head>");
htmlContent.append("<body>");
while (rs.next()) {
htmlContent.append("<hr>");
htmlContent.append("<b align='left'> Subject : "+rs.getString(1)+"</b><br>");
htmlContent.append("<b align='left'> Institution: "+rs.getString(2)+"</b><br>");
htmlContent.append("<b align='left'> Date : "+rs.getString(3)+"</b><br>");
htmlContent.append("<b align='left'> Minuted To : "+rs.getString(4)+"</b><br>");
htmlContent.append("<b align='left'> Minuted by : "+rs.getString(5)+"</b><br>");
htmlContent.append("</hr>");
htmlContent.append("<p align = 'left' ><B>Comment</B></p>");
htmlContent.append(rs.getString(6));
}
htmlContent.append("</body>");
htmlContent.append("</html>");
//Now you can append your text to the HtmlEditorKit
append(htmlContent.toString());
StringBuilder htmlContent=new StringBuilder();
htmlContent.追加(“”);
htmlContent.追加(“”);
附加(“你的标题在这里”);
htmlContent.追加(“”);
htmlContent.追加(“”);
while(rs.next()){
htmlContent.append(“
”);
htmlContent.append(“主题:+rs.getString(1)+”
”;
htmlContent.append(“机构:”+rs.getString(2)+“
”;
htmlContent.append(“日期:+rs.getString(3)+”
”;
htmlContent.append(“记录到:+rs.getString(4)+”
”;
htmlContent.append(“记录者:”+rs.getString(5)+“
”;
htmlContent.append(“”);
htmlContent.append(“Comment
”;
htmlContent.append(rs.getString(6));
}
htmlContent.追加(“”);
htmlContent.追加(“”);
//现在,您可以将文本附加到HtmlEditorKit
追加(htmlContent.toString());
您应该在迭代之前添加标题,因为您需要创建一个HTML页面来显示所有结果。
在给定的代码中,您为resultSet的每次迭代都创建了一个新的Html页面,这就是为什么它只显示最后的结果
也就是说,我们现在要做的是创建一个标题
并且,对于每个迭代,创建
内容
迭代之后,关闭
和
标记
并将其附加到您的HtmlEditorKit=)将检查一些备选方案。