println을 사용하여 멋지게 형식화 된 2 차원 배열을 인쇄하는 Java 프로그램이 있습니다. eclipse에서이 배열은 물론 콘솔에 출력됩니다. 그러나, 나는 동일한 프로젝트에서 별도의 SWT 프로그램을 만들었고이 배열을 Eclipse 위젯 대신 텍스트 위젯에 인쇄하려고합니다. 어떻게해야합니까?Java 편집 프로그램이 콘솔 대신 SWT 텍스트 위젯에 직접 인쇄합니다.
public static void main(String[] args) throws IOException {
try {
ReadFile file = new ReadFile(path);
String[][] pf = file.aryData();
int tmp = 1;
int yn=1;
while(yn==1){
Scanner in = new Scanner(System.in);
System.out.print("To View-0 , Add-1 ");
yn = in.nextInt();
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(path, true)));
out.println("");
if (yn == 1) {
String[][] newpf = new String[pf.length + 1][c];
String newData1;
System.arraycopy(pf, 0, newpf, 0, pf.length);
for (int i = 0; i < c; i++) {
System.out.print("Insert " + pf[0][i]+": ");
if (i==0){
in.nextLine();
newData1 = in.nextLine();
out.print(newData1);
}
else {
newData1 = in.nextLine();
out.print(", "+newData1);
}
newpf[pf.length][i] = newData1;
}
System.out.print("");
pf=newpf;
out.close();
}
}
for (int i = 0; i < pf.length; i++) {
for (int k = 0; k < c; k++) {
int tmp2 = pf[i][k].length();
if (tmp2 > tmp) {
tmp = tmp2 + 5;
}
}
}
for (int i = 0; i < pf.length; i++) {
for (int j = 0; j < c; j++) {
String fmStr = "%-" + tmp + "s";
System.out.printf(fmStr, pf[i][j]);
}
System.out.println("");
}
}
}
게시 한 코드를 참조하십시오. – nbhgt
내가 원하는 것을 얻으면 "System.out.printf (fmStr, pf [i] [j]);"줄을 바꿔야합니다. " 문자열을 저장하거나 형식화 된 출력을 다른 스트림에 쓰고 다른 프로그램으로 리디렉션 할 수 있습니다. SWT 프로그램에서 치료를 사용하기 위해 치료실을 외부에서 외부화하고 싶을 수도 있습니다. – benzonico
나는 이것에 동의한다. 'OutputStream' (또는'PrintWriter')을 매개 변수로 취하는 메소드에 배열 인쇄 코드를 추출 할 수 있습니다. 이 방법으로, 당신은'StringOutputStream'을 콘솔로 출력 할 수 있습니다. – Mithfindel