【问题标题】:Java- Can't apply Java Look and FeelJava - 无法应用 Java 外观
【发布时间】:2013-12-24 13:58:29
【问题描述】:

我在我的应用程序中使用 Synthetica Look and Feel,它在 Eclipse 上运行良好。但是当我导出 Jar 文件并执行它时,我得到了这些错误:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: sun/swing/plaf/synth/SynthUI
at de.javasoft.plaf.synthetica.SyntheticaDefaultLookup.getDefault(SyntheticaDefaultLookup.java:105)
at sun.swing.DefaultLookup.get(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.getInputMap(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.installKeyboardActions(Unknown Source)
at javax.swing.plaf.basic.BasicButtonUI.installKeyboardActions(Unknown Source)
at javax.swing.plaf.basic.BasicButtonUI.installUI(Unknown Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.AbstractButton.setUI(Unknown Source)
at javax.swing.JButton.updateUI(Unknown Source)
at javax.swing.AbstractButton.init(Unknown Source)
at javax.swing.JButton.<init>(Unknown Source)
at javax.swing.JButton.<init>(Unknown Source)
at de.javasoft.plaf.synthetica.SyntheticaLookAndFeel.installCompatibilityDefaults(SyntheticaLookAndFeel.java:925)
at de.javasoft.plaf.synthetica.SyntheticaLookAndFeel$4.propertyChange(SyntheticaLookAndFeel.java:582)
at java.beans.PropertyChangeSupport.fire(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at javax.swing.event.SwingPropertyChangeSupport.firePropertyChange(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at javax.swing.UIManager.setLookAndFeel(Unknown Source)
at com.evaluator.MainWindow.<init>(MainWindow.java:85)
at com.evaluator.Main$1.run(Main.java:15)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
   Caused by: java.lang.ClassNotFoundException: sun.swing.plaf.synth.SynthUI
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 35 more

我不知道问题到底出在哪里。这是我应用 Synthetica Blue Steel 外观和感觉的方式:

try 
    {
      UIManager.setLookAndFeel(new SyntheticaBlueSteelLookAndFeel());
      UIManager.put("Synthetica.rootPane.titlePane.title.center", true);
      UIManager.put("Synthetica.translucency4DisabledIcons.enabled", true); 

    } 
    catch (Exception e) {}

【问题讨论】:

  • catch (Exception e) { ..形式的代码修改为catch (Exception e) { e.printStackTrace(); // very informative! ..
  • synthetica 每周有一次,寻找,可能是用 Java7 编译的过时版本

标签: java swing jar look-and-feel synthetica


【解决方案1】:

请查看找不到 sun/swing/plaf/synth/SynthUI 的错误 图书馆。在开发模式下,您将该 jar 文件包含在 eclipse 库中,但是当您创建 jar 文件时,您不会包含 Synthui 主题 jar。将 Synthui jar 文件放在 jar、ext/ 文件夹中,它可以正常工作

【讨论】:

  • 尝试将该jar文件放入jar的ext文件夹中或将Synthui文件解压到您的项目文件夹中。
  • 我解压了Synthetica L&F的Jar文件,应用执行了但是L&F没有应用!
  • 你可以在这里查看我的代码我已经应用了这个主题drive.google.com/file/d/0B5kK85L6tpHCRVh0eHI0VGtPWTg/…First.java文件中编写的代码
  • 我认为您只提取了一个 Jar 文件。我对两个 Jar 文件做了同样的事情,正如我所说,我的应用程序随后被执行,但主题没有按预期应用
  • 把你的 jar 文件和代码提供给我,以便我查看并告诉你你遇到了什么问题。
【解决方案2】:

我认为您导出 jar 文件的方式不正确。

尝试将 jar 导出为可运行的 jar 文件。
按照以下步骤将您的应用导出为可运行的 jar。
1) 从文件菜单中选择导出。
2) 选择 Java->可运行的 JAR 文件
3) 选择启动配置,即您的主类。
4)如果要将物质库文件打包到自己的jar中,则库处理的前两个选项和第三个选项(将所需的库复制到生成的jar旁边的子文件夹中)如果要将生成的jar文件和物质分开库。
5)压完。

我希望这能解决您的问题。 :)

【讨论】:

  • 这不是问题,我已经验证过了。我没有直接从 Eclipse 导出,我使用的是用 Ant 编译的 Xml 文件。
猜你喜欢
  • 2014-11-05
  • 1970-01-01
  • 2011-07-06
  • 2012-05-02
  • 2013-05-19
  • 2010-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多