Swing使用Substance外观包异常问题

问题一: 今天更新我的Java版QQ,在网上找到了Substance外观包,效果不错,直接用了,可是设置水印问题时就出现问题,网上有现成的例子

JFrame.setDefaultLookAndFeelDecorated(true);  JDialog.setDefaultLookAndFeelDecorated(true);  try  {                   SubstanceImageWatermark watermark  =   new  SubstanceImageWatermark(LoginFrame. class .getResourceAsStream( " /demo/001.jpg " ));         watermark.setKind(ImageWatermarkKind.SCREEN_CENTER_SCALE);              SubstanceSkin skin  =   new  OfficeBlue2007Skin().withWatermark(watermark);   //初始化有水印的皮肤             UIManager.setLookAndFeel( new  SubstanceOfficeBlue2007LookAndFeel());                SubstanceLookAndFeel.setSkin(skin); //设置皮肤                     }  catch  (UnsupportedLookAndFeelException ex) {                  Logger.getLogger(LoginFrame. class .getName()).log(Level.SEVERE,  null , ex);     }

可是在我导入的包里死活包withWatermark方法不存在,于是就Google,最后看到一哥们说,自从subtance6.0以后就去掉了 withWatermark设置水印方法,原因貌似是不安全,可是想用水印的效果呢?那你就换成substance5.0版本吧!换了之后果然能用了效果图:北京比较淡,水印不明显。

问题二:使用subtance出现异常UIDefaults.getUI() failed: 和org.jvnet.substance.api.UiThreadingViolationException,有一前辈说是包不能识别啥的,就我遇到的问题,只是换了皮肤之后框架布局变了,不在于能不能用的问题,关键还是在代码上,我遇到的这个问题就在于我的代码设置问题,先把我的部分代码贴出来分析一下:

SubstanceImageWatermark watermark = new SubstanceImageWatermark(UserMainView.class.getResourceAsStream("/client/images/backImages/2.jpg "));
watermark.setKind(ImageWatermarkKind.SCREEN_CENTER_SCALE);
SubstanceSkin skin = new OfficeBlue2007Skin() .withWatermark(watermark); // 初始化有水印的皮肤
UIManager.setLookAndFeel(new SubstanceOfficeBlue2007LookAndFeel());
SubstanceLookAndFeel.setSkin(skin); // 设置皮肤

这是一个类,时刻要记得UIManager设置前提,放在构造方法的最前面,调用时要用到Swing工作线程 SwingUtilities.invokeLater()来调用,我在LoginView中调用的方法:

1 //userMainView = new UserMainView(oos, ois, v); // 加载用户信息SwingUtilities.invokeLater(new Runnable() {
2 public void run() {
3 userMainView = new UserMainView(oos, ois, v); // 加载用户信息   userMainView.setVisible(true);
4 }        });
5 LoginView.this.setVisible(false);<br>}

没有少量一句,SwingUtilities.invokeLater(new Runnable()}这是Swing工作形式,我的最后出来结果了,和以前系统默认的就是大小比例的不同,不再抛出异常,我认为是代码的问题,这是今天的收获写出来大家分享一下。

这是转自别人的,感谢他解决我的问题。

时间: 2024-11-14 15:35:23

Swing使用Substance外观包异常问题的相关文章

基于Java/Swing技术的KTV包间管理系统的设计与实现

获取项目源文件,技术交流与指导联系Q:1225467431 摘 要 KTV包房管理系统的设计必须考虑众多因素及其相互之间的关联,因此如何选择有效的设计模式是非常重要的.在本系统中,基于Java/Swing技术设计并实现了客户端. 它由模型-视图-控制器(MVC)模式设计而成. 本项目基于Java Swing的窗体布局技术进行软件的窗体布局. 本KTV管理系统是一个功能强大的.可靠的.方便的平台处理KTV包房管理业务. 该系统不仅能提高KTV包房管理的工作效率,另一方面也为客人在预订时提供一种较为

Hibernate search与Lucene包异常学习心得

最近使用了了一下Hibernate  Search这个组件 这个组件是对域模型进行全文检索,在全文检索的底层实现上使用了Lucene技术 在进行小测试的时候费了很大的力气去搞定包的问题 我直接通过实例进行验证 开始的时候我用的是最新的hibernate—search包,导致的直接问题是各种包不一致 这个问题花了我很长时间,最突出的一个异常就是java.lang.VerifyError 在比较久远的hibernate-search.jar包如:hibernate-search-3.1.0.GA 中

[转] Socket心跳包异常检测的C语言实现,服务器与客户端代码案例

转载自:zxh2075的专栏 在Socket心跳机制中,心跳包可以由服务器发送给客户端,也可以由客户端发送给服务器,不过比较起来,前者开销可能较大.本文实现的是由客户端给服务器发送心跳包,服务器不必返回应答包,而是通过判断客户在线会话记录中的计数标志值来实现心跳异常的检测,以此决定客户端是否已经断开连接以及删除其在线会话记录. 基本思路: ①客户端定时给服务器发送心跳包(案例中定时时间为3秒): ②服务器创建一个心跳检测的线程,线程中每隔3秒对用户在线会话记录中的计数器进行加1操作(初始值为0)

缺jar包异常:java.lang.NoClassDefFoundError: org/springframework/core/convert/support/PropertyTypeDescriptor

严重: StandardWrapper.Throwable java.lang.NoClassDefFoundError: org/springframework/core/convert/support/PropertyTypeDescriptor at org.springframework.beans.PropertyAccessorFactory.forBeanPropertyAccess(PropertyAccessorFactory.java:37) at org.springfra

Java Swing中Substance个人比较喜欢的两种组合

try { // 设置外形装饰为可装饰 JFrame.setDefaultLookAndFeelDecorated(true); // 设置外观 UIManager.setLookAndFeel(new SubstanceBusinessBlackSteelLookAndFeel()); // 设置主题 SubstanceLookAndFeel.setCurrentTheme(new SubstanceBottleGreenTheme()); // 设置皮肤 SubstanceLookAndFe

tangram2.6(XE2)\framework框架加载包异常 调试的地方

添加以下的项目到项目组中, \tangram2.6(XE2)\framework\Core\Tangram_Core.dpk 调试此包的SysModuleMgr.pas的函数,本人还没有测试 function TTangramModule.LoadModule: THandle; begin try Result:=0; case GetModuleType of mtBPL:Result:=SysUtils.LoadPackage(self.FModuleFileName); mtDLL:Re

Java Swing中Substance常用皮肤

AutumnSkin; BusinessSkin; BusinessBlackSteelSkin; BusinessBlueSteelSkin; ChallengerDeepSkin; CremeSkin; CremeCoffeeSkin; EmeraldDuskSkin; FindingNemoSkin; FieldOfWheatSkin; GreenMagicSkin; MangoSkin; MagmaSkin; MistAquaSkin; MistSilverSkin; ModerateS

第九周学习视频(二)

一.MouseEvent 每个鼠标事件处理方法都将MouseEvent对象作为它的实参. MouseEvent对象包含关于所发生的鼠标 事件的信息.包括事件发生所在位置的X.Y坐标. InputEvent(MouseEvent的超类)中的方法和常量,使程序能判断用户按下的是哪个鼠标按钮. 二.适配器类 对于具有多个方法的许多事件监听接口,Java.awt.event和Java.swing.event包 提供了事件监听器的适配器类. 适配器类实现相应的接口,并提供接口中的每个方法的默认实现(方法体

Swing:LookAndFeel 教程第一篇——手把手教你写出自己的 LookAndFeel

本文是 LookAndFeel 系列教程的第一篇. 是我在对 Swing 学习摸索中的一些微薄经验. 我相信,细致看全然系列之后.你就能写出自己的 LookAndFeel. 你会发现 Swing 原来能够这样美. -------------------------------------------------------------------------------- 引言: 我第一次接触 Java 要追溯到非常多年前做毕业设计的时候. 那天我和同学来到了一个微型软件公司(三程序猿.一会计.