使用Substance制作漂亮的swing皮肤(附源码)
最近项目用swing开发桌面程序,感觉本身的swing界面实在不怎么样,所以就使用了Substance开源产品,感觉很不错,推荐给大家,示例代码如下:
? 1 楼 littleJava 2008-09-25 早就用过了,皮肤是不错,就是它的下载资源太难找了…… 2 楼 小疯子 2008-09-25 没有看到你用Substance制作了什么皮肤啊, 只是使用了Substance吧!
这标题也太... 3 楼 xht314 2008-11-07 这个包现在有个BUG,就是不断的最大化,恢复,手动调整大小,最后鼠标的形状就会变成两个箭头形式,变以不回去了. 4 楼 coolstar648 2008-11-07 lz能不能提供一下架包的下载地址啊? 5 楼 liugr 2008-11-11 开源的皮肤包很多,比这个漂亮的也很多啊 6 楼 ext__chlj 2009-08-20 10:56:34,593 DEBUG ReceiveService:88 - 启动服务器.........
org.jvnet.substance.api.UiThreadingViolationException: Component creation must be done on Event Dispatch Thread
at org.jvnet.substance.utils.SubstanceCoreUtilities.testComponentCreationThreadingViolation(SubstanceCoreUtilities.java:2368)
at org.jvnet.substance.SubstancePanelUI.createUI(SubstancePanelUI.java:57)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:36)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)10:56:51,203 DEBUG SendService:132 - TCP发送处理成功
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:243)
at javax.swing.UIDefaults.getUI(UIDefaults.java:751)
at javax.swing.UIManager.getUI(UIManager.java:1016)
at javax.swing.JPanel.updateUI(JPanel.java:109)
at javax.swing.JPanel.<init>(JPanel.java:69)
at javax.swing.JPanel.<init>(JPanel.java:92)
at javax.swing.JPanel.<init>(JPanel.java:100)
at com.comm.gui.TransPanel.<init>(TransPanel.java:28)
at com.comm.gui.DialogWindow$4$1.<init>(DialogWindow.java:203)
at com.comm.gui.DialogWindow$4.getDataListenner(DialogWindow.java:202)
at com.comm.service.ReceiveService$1.run(ReceiveService.java:170)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
UIDefaults.getUI() failed: createUI() failed for com.comm.gui.TransPanel[,0,0,0x0,invalid,layout=java.awt.FlowLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=] java.lang.reflect.InvocationTargetException
java.lang.Error
at javax.swing.UIDefaults.getUIError(UIDefaults.java:711)
at javax.swing.MultiUIDefaults.getUIError(MultiUIDefaults.java:133)
at javax.swing.UIDefaults.getUI(UIDefaults.java:757)
at javax.swing.UIManager.getUI(UIManager.java:1016)
at javax.swing.JPanel.updateUI(JPanel.java:109)
at javax.swing.JPanel.<init>(JPanel.java:69)
at javax.swing.JPanel.<init>(JPanel.java:92)
at javax.swing.JPanel.<init>(JPanel.java:100)
at com.comm.gui.TransPanel.<init>(TransPanel.java:28)
at com.comm.gui.DialogWindow$4$1.<init>(DialogWindow.java:203)
at com.comm.gui.DialogWindow$4.getDataListenner(DialogWindow.java:202)
at com.comm.service.ReceiveService$1.run(ReceiveService.java:170)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
org.jvnet.substance.api.UiThreadingViolationException: Component creation must be done on Event Dispatch Thread
我没有用substance 一切正常,没有问题,这是我的main
public static void main(String args[]) {
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
try {
UIManager.setLookAndFeel(new SubstanceOfficeBlue2007LookAndFeel());
} catch (UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new MainWindow().setVisible(true);
}
});
}
我是用的 substance5.2 请问您遇到这样的问题吗?有解决方法吗?谢谢、、、、、