0

我使用 IcePDF 作为 PDF 查看器,PropertiesManager我可以启用/禁用功能,例如:

    SwingController controller = new SwingController();

    PropertiesManager properties = new PropertiesManager(System.getProperties(),
            ResourceBundle.getBundle(PropertiesManager.DEFAULT_MESSAGE_BUNDLE));

    properties.setBoolean(PropertiesManager.PROPERTY_SHOW_UTILITY_PRINT, false);
    properties.setBoolean(PropertiesManager.PROPERTY_SHOW_TOOLBAR_ANNOTATION, false);
    properties.setBoolean(PropertiesManager.PROPERTY_SHOW_UTILITYPANE_ANNOTATION, false);
    properties.setBoolean(PropertiesManager.PROPERTY_SHOW_TOOLBAR_ROTATE, false);
    properties.setBoolean(PropertiesManager.PROPERTY_SHOW_UTILITY_SAVE, false);
    properties.setBoolean(PropertiesManager.PROPERTY_SHOW_TOOLBAR_FIT, false);

    SwingViewBuilder factory = new SwingViewBuilder(controller, properties);

但是我想改变Windows Look And Feel,简单UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());的不行。有人可以解决吗?

4

2 回答 2

0

org.icepdf.ri.viewer.Launcher 类设置查看器 RI 的外观,该查看器 RI 位于查看器 jar 中。这是一个较旧的类,但如果您想覆盖它,它仍然使用 PropertiesManager。您可以使用:

preferences.put("application.lookandfeel", "javax.swing.plaf.metal.MetalLookAndFeel");

这适用于 ICEpdf 6.3.x,但如果您使用的是早期版本,则可以使用与原始帖子类似的模式。该值可以是 Swing 的任何有效外观。

于 2018-09-29T16:27:40.480 回答
0

我终于在我的代码的开头添加了:

try {
  UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
        | UnsupportedLookAndFeelException e) {
  System.err.println("[ err. ] " + e);
}

它有效。

于 2018-10-01T11:36:08.803 回答