2013-06-24 60 views
0

我一直在试图打印一个只包含java中的小写字母的char矩阵。起初,我从矩阵条目中定义了一个字符串,然后使用JOptionPane来打印它,但显然由于字母的间距不同,列未被分配,所以看起来很糟糕。该代码是以下几点:如何在Java中打印char矩阵,以便列被分配?

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); 

然后我试图只是打印使用的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(); 
    } 

和输出看上去很完美,列好神韵:。

所以我的问题是如何使用JOptionPane或类似的东西来实现相同的结果?为什么当我在控制台中输出时,输出会有所不同?

非常感谢您的帮助。

+3

你有没有设置你的widget使用*宽字体*?像Courier或 – 2013-06-24 05:39:15

+0

你可以用'swing'组件选择HTML'

'标签。 – adatapost

+0

您可以使用'Formatter'来对齐字段 – fge

回答

1

这应该工作:

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()); 

(未测试)

+0

非常感谢RC。我试过你的代码,但是我收到以下错误: “找不到符号 符号:class Font” 你知道我在做什么错误或如何解决吗? –

+0

import java.awt.Font; –

+0

您错过了导入:'java.awt.Font' – 2013-06-24 06:16:41