0

我正在使用 Java Swing。我正在尝试使用 Jtable 的打印方法...

public void actionPerformed(java.awt.event.ActionEvent ignore) {
    MessageFormat header = new MessageFormat("Page {0,number,integer}");
    try {
        table.print(JTable.PrintMode.FIT_WIDTH, header, null);
    } catch (java.awt.print.PrinterException e) {
        System.err.format("Cannot print %s%n", e.getMessage());
    }
}

显示打印对话框。它的工作正常..

打印对话框

但是我想通过 Locale 类将文本对话语言更改为西班牙语,我该怎么做?

谢谢!

4

1 回答 1

0

@迭戈

我在这里复制了您的解决方案,以便更容易阅读。

它的灵感来自这里的旧论坛条目:https ://forums.oracle.com/thread/1287832

- - 开始 - -

只需在 Jtable.print() 方法之前添加反射以更改 ResourceBlunde ...

try { 
    Class cl = Class.forName("sun.print.ServiceDialog"); 
    if (cl != null) { 
        Field fld = cl.getDeclaredField("messageRB"); 
        if (fld != null) { 
            fld.setAccessible(true); 
            fld.set(cl, ResourceBundle.getBundle("sun.print.resources.serviceui_es")); 
        } 
    } 
} catch (Exception ex11) { 
    ex11.printStackTrace(); 
}

- - 结尾 - -

总有一天我可能想搜索并找到它。

于 2013-07-24T18:50:11.143 回答