swing中通过.class文件(把.java都删除)打包成jar文件,使用皮肤包遇到的问题。

开发swing项目,为了让代码安全性高一点(把.java源码都删除),留下.class编译文件来打包成jar文件,从而生成.exe可执行文件。内容中有用到开源的皮肤包。其中JTattoo.jar、OfficeLnFs.jar、JavaGPE_3DLF.jar等常用的都可以,唯独substance.jar里面的就报错。

报错如下:

Cannot install org.jvnet.substance.skin.SubstanceBusinessLookAndFeel on this platform:org.jvnet.substance.skin.SubstanceBusinessLookAndFeel
java.lang.ClassNotFoundException: org.jvnet.substance.skin.SubstanceBusinessBlueSteelLookAndFeel(substance里面的皮肤类都不行)

提示什么不能安装在这个平台上,但是用.java执行文件是没问题的。后来想想是不是因为没有找到org.jvnet.substance.skin相应的路劲。后来把substance.jar解压缩后把org文件夹(org.jvnet.substance.skin.SubstanceBusinessLookAndFeel.class里所有的皮肤包的class文件)拷贝到项目的目录里。重新打包后果断可以了。substance.jar的这个皮肤包果然是麻烦点(难不成说它安全性高/独特?),在使用substance的皮肤包需要加上:

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

    try {
   JFrame.setDefaultLookAndFeelDecorated(true);
   UIManager.setLookAndFeel(LnF);
   SwingUtilities.updateComponentTreeUI(this);
  } catch (Exception e) {
   e.printStackTrace();
  }//设置外观风格

   });

但是在不与其他类型外观切换时也没遇到问题。方正在使用substance的时候需要准备好出现问题的准备。但是耐心都能解决。

 

你可能感兴趣的:(swing中通过.class文件(把.java都删除)打包成jar文件,使用皮肤包遇到的问题。)