Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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编辑程序直接将LN打印到SWT文本小部件而不是控制台_Java_Arrays_Eclipse_Swt - Fatal编程技术网

Java编辑程序直接将LN打印到SWT文本小部件而不是控制台

Java编辑程序直接将LN打印到SWT文本小部件而不是控制台,java,arrays,eclipse,swt,Java,Arrays,Eclipse,Swt,我有一个java程序,它使用println打印格式良好的2d数组。在eclipse中,这个数组当然会打印到控制台。但是,我在同一个项目中制作了一个单独的SWT程序,我希望将此数组打印到文本小部件而不是eclipse控制台。我该怎么做 public static void main(String[] args) throws IOException { try { ReadFile file = new ReadFile(path); String[][]

我有一个java程序,它使用println打印格式良好的2d数组。在eclipse中,这个数组当然会打印到控制台。但是,我在同一个项目中制作了一个单独的SWT程序,我希望将此数组打印到文本小部件而不是eclipse控制台。我该怎么做

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("");
        }
    }
    }
publicstaticvoidmain(字符串[]args)引发IOException{
试一试{
ReadFile file=新的ReadFile(路径);
字符串[][]pf=file.aryData();
int-tmp=1;
int-yn=1;
while(yn==1){
扫描仪输入=新扫描仪(系统输入);
系统输出打印(“查看-0,添加-1”);
yn=in.nextInt();
PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter,path,true));
out.println(“”);
如果(yn==1){
字符串[][]newpf=新字符串[pf.length+1][c];
字符串newData1;
System.arraycopy(pf,0,newpf,0,pf.length);
对于(int i=0;itmp){
tmp=tmp2+5;
}
}
}
for(int i=0;i
如果打印到控制台,是否直接使用System.out?您可能必须将System.out参数化为PrintStream,以便使用另一个将打印到OutputStream的PrintStream

[上传代码后编辑]


如果我得到了您想要做的,您必须替换行“System.out.printf(fmStr,pf[i][j])”,以存储字符串或将格式化输出写入另一个流,并将其重定向到其他程序。您可能希望从Main外部化处理,以便在SWT程序中使用它。

如果它打印到控制台,它是否直接使用System.out?您可能必须将System.out参数化为PrintStream,以便使用另一个将打印到OutputStream的PrintStream

[上传代码后编辑]


如果我得到了您想要做的,您必须替换行“System.out.printf(fmStr,pf[i][j])”,以存储字符串或将格式化输出写入另一个流,并将其重定向到其他程序。您可能希望从Main外部化处理,以便在SWT程序中使用它。

如果我得到了您想要做的事情,您必须替换行“System.out.printf(fmStr,pf[i][j]);”以存储字符串或将格式化输出写入另一个流,并将其重定向到其他程序。为了在SWT项目中使用它,你可能想从主要方面将治疗外部化。我同意这一点。您可能希望将数组打印代码提取到以
OutputStream
(或
PrintWriter
)为参数的方法。通过这种方式,您可以很好地打印到控制台,
StringOutputStream
,无论什么。如果我得到了您想要做的事情,您必须替换行“System.out.printf(fmStr,pf[i][j]);”来存储字符串或将格式化的输出写入另一个流,并将其重定向到其他程序。为了在SWT项目中使用它,你可能想从主要方面将治疗外部化。我同意这一点。您可能希望将数组打印代码提取到以
OutputStream
(或
PrintWriter
)为参数的方法。这样,您就可以很好地打印到控制台,
StringOutputStream
,无论什么。