在Java中更改ICEPDF外观

时间:2018-09-27 07:51:52

标签: java swing user-interface frameworks icepdf

我将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的外观,简单的UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());不起作用。有人可以解决吗?

2 个答案:

答案 0 :(得分:0)

org.icepdf.ri.viewer.Launcher类设置了在查看器jar中找到的Viewer RI的外观。这是一个较旧的类,但如果要覆盖它,则仍使用PropertiesManager。您可以使用:

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

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

答案 1 :(得分:0)

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

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

它有效。