开发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项目时,使用Substance皮肤包时遇到的ClassNotFound错误,并提供了解决方案。通过将org文件夹下的所有类文件拷贝到项目目录下,成功解决了问题。同时,文中提到了在使用Substance皮肤包时需要注意的事项。
2388

被折叠的 条评论
为什么被折叠?



