打印时未显示 JTable 单元格文本 space
JTable cell text space not shown when print out
打印 table 的方法。
public static void PrintTable(JTable table,String title) {
try {
MessageFormat headerFormat = new MessageFormat(title);
MessageFormat footerFormat = new MessageFormat("{0}");
boolean complete = table.print(JTable.PrintMode.FIT_WIDTH,headerFormat, footerFormat);
if (complete) {
JOptionPane.showMessageDialog(null, "Printing Completed.");
}else {
JOptionPane.showMessageDialog(null, "Printing Canceled !");
}
} catch (PrinterException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null,e);
}
}
应用程序输出 table 列看起来像这样(正确)。
| Address |
:--------------------------
| Kathmandu Nepal
| Kirtipur 5 Kathmandu Nepal |
| Baneswor 10 Kathmandu Nepal |
| Balkhu 2 Kathmandu Nepal |
但是打印出来的硬拷贝是这样的:(在一些单词之间缺少 space)。
| Address |
:------------------------
| Kathmandu Nepal
| Kirtipur5KathmanduNepal |
| Baneswor10KathmanduNepal |
| Balkhu2KathmanduNepal |
如何克服这个问题?我用谷歌搜索但没有找到相关的解决方案。
这是由于 JTable 的 'Microsoft Sans Serif' 字体造成的。我把字体改成了'Tahoma'。有效。
打印 table 的方法。
public static void PrintTable(JTable table,String title) {
try {
MessageFormat headerFormat = new MessageFormat(title);
MessageFormat footerFormat = new MessageFormat("{0}");
boolean complete = table.print(JTable.PrintMode.FIT_WIDTH,headerFormat, footerFormat);
if (complete) {
JOptionPane.showMessageDialog(null, "Printing Completed.");
}else {
JOptionPane.showMessageDialog(null, "Printing Canceled !");
}
} catch (PrinterException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null,e);
}
}
应用程序输出 table 列看起来像这样(正确)。
| Address |
:--------------------------
| Kathmandu Nepal
| Kirtipur 5 Kathmandu Nepal |
| Baneswor 10 Kathmandu Nepal |
| Balkhu 2 Kathmandu Nepal |
但是打印出来的硬拷贝是这样的:(在一些单词之间缺少 space)。
| Address |
:------------------------
| Kathmandu Nepal
| Kirtipur5KathmanduNepal |
| Baneswor10KathmanduNepal |
| Balkhu2KathmanduNepal |
如何克服这个问题?我用谷歌搜索但没有找到相关的解决方案。
这是由于 JTable 的 'Microsoft Sans Serif' 字体造成的。我把字体改成了'Tahoma'。有效。