2013-06-07 4 views
-1

먼저, 표준 배열을 사용하여 원하는 방식으로 작동하는 몇 가지 예제를 발견했습니다. 크기를 제한하지 않기 때문에 ArrayList를 사용해야 할 필요가 있습니다. 그리고 내용은 다른 방법을 통해 추가됩니다.ArrayList 내용을 JOptionPane.showMessageDialog에 표시합니다.

내 문제는 Arraylist 내용을 표시하고 자체 줄에 가져 오는 것입니다. 내 코드는 아래 내용 만 표시합니다.

참고 :이 프로그램은 필자가 필러 방법을 사용하고있는 테스트 프로그램 일뿐입니다.

PS 모든 assitance가 매우 중요합니다. 나는 이것을 지난 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"); 
    } 
    } 
+1

'세부 사항 + = errorCache.get (I), 작품의 종류 assylias' – assylias

+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); 
+0

어떻게 성능이 향상됩니까? –

+0

'StringBuilder'를 사용할 때'StringBuilder'를 사용할 때 더 적은 수의 객체가 만들어 지는데,'+ ='문자열 연결은 적은 수의 문자열에서는 눈에 띄지 않지만 더 좋은 성능을 제공합니다. 그럼에도 불구하고 – Reimeus

+0

mm은 HTML 포맷팅을 원하지 않습니다. –

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); 
    } 
+0

나는 Assylias가 + "\ n"을 추가하여 말한 것을 시도했다. –

+0

문자열 세부 정보를 showMessage() 메서드로 이동 시켰고 null을 제거했습니다. –

관련 문제