如何在Java中打印字符矩阵以便列对齐?

如何在Java中打印字符矩阵以便列对齐?,java,Java,我一直试图在java中打印一个仅由小写字母组成的字符矩阵。起初,我从矩阵条目中定义一个字符串,然后使用JOptionPane打印它,但显然由于字母的间距不同,列没有对齐,所以看起来很糟糕。代码如下: String wordSearch = ""; for(int i = 0; i < 20; i++){ for(int j = 0; j < 20; j++){ wordSearch = wordSearch + matrix[i][j] +"\t";

我一直试图在java中打印一个仅由小写字母组成的字符矩阵。起初,我从矩阵条目中定义一个字符串,然后使用JOptionPane打印它,但显然由于字母的间距不同,列没有对齐,所以看起来很糟糕。代码如下:

String wordSearch = ""; 
for(int i = 0; i < 20; i++){   
  for(int j = 0; j < 20; j++){
    wordSearch = wordSearch + matrix[i][j] +"\t";    
  } 
wordSearch = wordSearch + "\n"; 
} 
JOptionPane.showMessageDialog(null, wordSearch);
String wordSearch=”“;
对于(int i=0;i<20;i++){
对于(int j=0;j<20;j++){
wordSearch=wordSearch+matrix[i][j]+“\t”;
} 
wordSearch=wordSearch+“\n”;
} 
showMessageDialog(null,wordSearch);
然后我尝试使用System.out打印矩阵,如下所示

  for(int i = 0; i < 20; i++){
    for(int j = 0; j < 20; j++){
      System.out.print(matrix[i][j] +"   ");
    }
  System.out.println();
  }
for(int i=0;i<20;i++){
对于(int j=0;j<20;j++){
系统输出打印(矩阵[i][j]+“”);
}
System.out.println();
}
输出看起来很完美,列排列得很好

所以我的问题是,如何使用JOptionPane或类似的工具实现相同的结果?为什么在控制台中打印时输出看起来不同

非常感谢您的帮助。

这应该可以:

javax.swing.UIManager.put("OptionPane.font", new Font("Courier", Font.PLAIN, 16));
final StringBuilder wordSearch = new StringBuilder(); 
for (int i = 0; i < 20; i++){   
    for (int j = 0; j < 20; j++){
        wordSearch.append(matrix[i][j]).append('\t');    
    } 
    wordSearch.append('\n'); 
} 
JOptionPane.showMessageDialog(null, wordSearch.toString());
javax.swing.UIManager.put(“OptionPane.font”,新字体(“Courier”,font.PLAIN,16));
final StringBuilder wordSearch=新建StringBuilder();
对于(int i=0;i<20;i++){
对于(int j=0;j<20;j++){
append(矩阵[i][j]).append('\t');
} 
追加('\n');
} 
showMessageDialog(null,wordSearch.toString());

(未测试)

您是否将小部件设置为使用固定宽度字体?像Courier之类的东西,你可以选择HTML
标记和
swing
组件。你可以使用
格式化程序来对齐fields@RC. 亲爱的RC,我很抱歉我缺乏知识,但我甚至不知道如何做到这一点。你使用了什么格式说明符?类似于
%-8d
的东西非常适合对齐。。。但是作为@RC。提到这一点,无论如何你都应该使用固定宽度的字体,非常感谢。我尝试了你的代码,但我得到了以下错误:“找不到符号:类字体”你知道我做错了什么或如何修复它吗?你错过了导入:
java.awt.Font
非常感谢。您的代码现在可以工作了,但不幸的是,我仍然在列中遇到对齐问题。