如何在TextArea中打印2D数组

时间:2015-05-22 08:29:13

标签: java jframe jbutton jtextarea

大家好我需要一些帮助我想用JButton将2D数组打印到JTextArea中。我有这个方法:

public static void getMaze(){
    for(int i = 0; i<rows; i++)
for(int j = 0; j<columns; j++)
    array[i][j] = "[]";

    array [i3][i4]="# ";
    array [i5][i6]="# ";
    array [i7][i8]="# ";
    array [i9][i10]="# ";
    array [i11][i12]="# ";
    array [i13][i14]="# ";

    array [0][0]="S ";         //start
    array [i1-1][i1-1] =" C";  //cil

for(int i = 0; i<rows; i++)
{
for(int j = 0; j<columns; j++)
{
    System.out.print(array[i][j]+" ");
}
System.out.println("");
}

}

其中i3-i14是随机数。我试过这个

btn1.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        for (int i=0;i<array.length;i++){
            for(int j=0;j<array.length;j++){

                System.out.println(array[i][j]+" ");

     ta1.append(String.valueOf(array[rows][columns]));
    }
            System.out.println("");

        }

            }

但它不起作用

1 个答案:

答案 0 :(得分:0)

您的代码有几个问题:

  • 您在两次迭代中都使用array.length(在其中一种情况下应使用array[0].length
  • 您在问题的“我试过这个”部分中使用了System.out.println。这将导致始终以新的一行打印。

你有没有尝试

for(int i = 0; i<rows; i++) {
    for(int j = 0; j<columns; j++) {
        System.out.print(array[i][j]+" ");
    }
    System.out.println("");
}

的作品?因为它似乎是这样做的。

当你完成内部迭代时,当然你应该在你的ta1(我想的文本区域)中插入一个换行符。 System.out.println与打印到控制台的textarea无关。

目前尚不清楚是否要将数组写入控制台或textarea。