在JOptionPane.showMessageDialog中显示ArrayList内容

时间:2013-06-07 12:31:20

标签: java arraylist joptionpane

首先,我发现一些示例按照我想要的方式使用标准数组,但是我需要使用ArrayList,因为大小不受限制。并通过不同的方法添加内容。

我的问题是要让Arraylist内容显示并在其自己的行上显示。 使用我的代码,只显示最后一个内容。

注意:这不是实际的应用程序,它只是一个测试程序,因为我有填充方法。

PS,任何帮助都会被大大提升。我已经重置了这个过去2个小时。

这是我到目前为止所做的工作。

 import javax.swing.*;
  import java.util.ArrayList;
  import java.util.*;

   public class fe
  {
    private static ArrayList<String> errorCache = new ArrayList<String>();
    private static String details;

   public fe()
    {
    }

   public static void main(String[] args)
   {
    fillList(); 
    showMessage();
   }

  private static void showMessage()
   {
    for (int i=0;i<errorCache.size();i++)
    {
        details =  errorCache.get(i);
    }
    JOptionPane.showMessageDialog(null, details, "Printing results",  JOptionPane.INFORMATION_MESSAGE);
  }

  private static void fillList()
  {
    errorCache.add("this");
    errorCache.add("should");
    errorCache.add("bee");
    errorCache.add("on");
    errorCache.add("its");
    errorCache.add("own");
    errorCache.add("line");
  }
}

我得到了这个工作,以帮助我花了很多时间尝试这项工作。 最后的代码是其他任何有问题的人的结果。

 import javax.swing.*;
 import java.util.ArrayList;
 import java.util.*;

   public class fe
    {
     private static ArrayList<String> errorCache = new ArrayList<String>();

   public fe()
    {
    }

   public static void main(String[] args)
    {
      fillList(); 
      showMessage();
    }

   private static void showMessage()
   {
      String details = "";
      for (int i=0;i<errorCache.size();i++)
    {
        details +=  errorCache.get(i) + "\n";
    }
    JOptionPane.showMessageDialog(null, details, "Printing results", JOptionPane.INFORMATION_MESSAGE);

    //Remimues way.
    //StringBuilder builder = new StringBuilder("<html>"); 
    //for (int i = 0; i < errorCache.size(); i++) {
    //builder.append(errorCache.get(i));
    //builder.append("<br>");
    // }
     //builder.append("</html>");
    //JOptionPane.showMessageDialog
     //(null, builder.toString(), "Printing results", JOptionPane.INFORMATION_MESSAGE);

     }

    private static void fillList()
    {
        errorCache.add("this");
        errorCache.add("should");
        errorCache.add("bee");
        errorCache.add("on");
        errorCache.add("its");
        errorCache.add("own");
        errorCache.add("line");
     }
  }

2 个答案:

答案 0 :(得分:1)

您可以结合使用HTML进行格式化,将StringBuilder结合使用以提高性能:

StringBuilder builder = new StringBuilder("<html>"); 
for (int i = 0; i < errorCache.size(); i++) {
    builder.append(errorCache.get(i));
    builder.append("<br>");
}
builder.append("</html>");
JOptionPane.showMessageDialog
    (null, builder.toString(), "Printing results", JOptionPane.INFORMATION_MESSAGE);

答案 1 :(得分:0)

你的意思是这样吗?

  private static void showMessage(){
      String details = "";

      for( int i=0; i < errorCache.size(); i++ ){
          details +=  errorCache.get(i) + " ";
      }

      JOptionPane.showMessageDialog( null, details, "Printing results", JOptionPane.INFORMATION_MESSAGE );
  }