在单个JOptionPane中显示多个System.out.print?

时间:2014-12-04 00:47:23

标签: java swing loops joptionpane

几周前我刚刚开始学习Java,所以我很新。我目前正在开发一款TicTacToe游戏而且我刚刚完成,但我没有将我的主机显示为System.out.print,而是希望它显示在JOptionPane消息上,而不是美观地改进它。然而,我的电路板完全是用循环制作的,我不知道如何在JOptionPane上显示:(我已经尝试在线研究类似的情况但是我发现的一切都很混乱或似乎不适用于那种我正在打印的声明。如果有人能帮助我,我将不胜感激。

public static void showBoard(char[][] brd)
{

    int numRow = brd.length;
    int numCol = brd[0].length;


    System.out.println();

    // This is the column
    System.out.print("    ");
    for (int i = 0; i < numCol; i++)
      System.out.print(i + "   ");
    System.out.print('\n');

    System.out.println(); // blank line after the header

    // The write the table
    for (int i = 0; i < numRow; i++) {
      System.out.print(i + "  ");
      for (int j = 0; j < numCol; j++) {
        if (j != 0)
          System.out.print("|");
        System.out.print(" " + brd[i][j] + " ");
      }

      System.out.println();

      if (i != (numRow - 1)) {
        // separator line
        System.out.print("   ");
        for (int j = 0; j < numCol; j++) {
          if (j != 0)
            System.out.print("+");
          System.out.print("---");
        }

        System.out.println();
      }
    }
    System.out.println();
}

1 个答案:

答案 0 :(得分:1)

与上面提到的MadProgrammer一样,JOptionPane并不是展示此类内容的最佳方式。但如果您真的想使用JOptionPane,请执行以下操作:

在顶部创建一个空字符串的String对象...

String str = "";

并用System.out.print替换每个str +=语句,然后用括号中包含的内容替换。例如:

str += "    ";
for (int i = 0; i < numCol; i++)
  str += i + "   ";
str += "\n";

System.out.println语句替换为str += "\n";

最后,最后您可以使用JOptionPane来显示字符串。

JOptionPane.showMessageDialog(null,str);

由于JOptionPane不会像控制台那样将网格放置在网格对齐中(至少据我所知),因此你需要自己解决一些对齐问题,但这应该给出你很清楚如何做到这一点。