Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在窗格中追加文本_Java_Swing_Jeditorpane - Fatal编程技术网

Java 在窗格中追加文本

Java 在窗格中追加文本,java,swing,jeditorpane,Java,Swing,Jeditorpane,我正在开发一个应用程序,它使用JEditorPane显示数据库中的数据 EditorPane将以HTML格式追加resultSet。 我的问题是,JEditorPane会擦除第一个结果集,而只显示最后一个结果集 以下是我的代码摘录: while(rs.next()){ String htmlComent = "<"html>"<b> + "<"head><"title><"/title>"</>

我正在开发一个应用程序,它使用JEditorPane显示数据库中的数据

EditorPane将以HTML格式追加
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=)

将检查一些备选方案。