java - 非法参数异常 : No interpolator found for float during implementing Substance LAF

标签 java swing look-and-feel substance

我尝试过实现 Substance LAF。我还下载了 Trident 库。应用程序通常会启动(从包结构中选择 LAF),但是当我尝试在 JMenuBar 中使用菜单时,出现以下异常。

我发现了非常相似的问题,但它绝对是不同的 – Flamingo ribbon: Java.lang.IllegalArgumentException: No interpolator found for java.lang.Float:java.lang.Float

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException:     No interpolator found for 
java.lang.Float:java.lang.Float 
 at org.pushingpixels.trident.TimelinePropertyBuilder.getFieldInfo    (TimelinePropertyBuilder.ja 
 va:257) 
 at org.pushingpixels.trident.Timeline.addPropertyToInterpolate    (Timeline.java:353) 
 at org.pushingpixels.trident.Timeline.addPropertyToInterpolate    (Timeline.java:363) 
 at     org.pushingpixels.substance.internal.animation.StateTransitionTracker.onModelStat    eChanged 
 (StateTransitionTracker.java:394) 
 at org.pushingpixels.substance.internal.ui.SubstanceMenuUI$1.mouseEntered        (SubstanceMenuUI.ja 
 va:155) 
 at java.awt.AWTEventMulticaster.mouseEntered(Unknown Source) 
 at java.awt.Component.processMouseEvent(Unknown Source) 
 at javax.swing.JComponent.processMouseEvent(Unknown Source) 
 at java.awt.Component.processEvent(Unknown Source) 
 at java.awt.Container.processEvent(Unknown Source) 
 at java.awt.Component.dispatchEventImpl(Unknown Source) 
 at java.awt.Container.dispatchEventImpl(Unknown Source) 
 at java.awt.Component.dispatchEvent(Unknown Source) 
 at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
 at java.awt.LightweightDispatcher.retargetMouseEnterExit(Unknown Source) 
 at java.awt.LightweightDispatcher.trackMouseEnterExit(Unknown Source) 
 at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
 at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
 at java.awt.Container.dispatchEventImpl(Unknown Source) 
 at java.awt.Window.dispatchEventImpl(Unknown Source) 
 at java.awt.Component.dispatchEvent(Unknown Source) 
 at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
 at java.awt.EventQueue.access$500(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$JavaSecurityAccessImpl.doIntersectionPrivilege    (Unknown Sou 
 rce) 
 at     java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege    (Unknown Sou 
 rce) 
 at java.awt.EventQueue$4.run(Unknown Source) 
 at java.awt.EventQueue$4.run(Unknown Source) 
 at java.security.AccessController.doPrivileged(Native Method) 
 at     java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege    (Unknown Sou 
 rce) 
 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) 

有什么想法吗?

最佳答案

经过几个小时的努力,我找到了解决方案。错误

java.lang.IllegalArgumentException: No interpolator found for java.lang.Float:java.lang.Float

TimelinePropertyBuilder类中的代码无关。 它缺少相应顶级库的META-INF中的trident-plugin.properties文件。确切地定义了Interpolator类源。

因此,无需寻找它,这里是非常需要的 trident-plugin.properties:

UIToolkitHandler=org.pushingpixels.trident.swing.SwingToolkitHandler
PropertyInterpolatorSource=org.pushingpixels.trident.swing.AWTPropertyInterpolators

UIToolkitHandler=org.pushingpixels.trident.swt.SWTToolkitHandler
PropertyInterpolatorSource=org.pushingpixels.trident.swt.SWTPropertyInterpolators

UIToolkitHandler=org.pushingpixels.trident.android.AndroidToolkitHandler
PropertyInterpolatorSource=org.pushingpixels.trident.android.AndroidPropertyInterpolators

PropertyInterpolatorSource=org.pushingpixels.trident.interpolator.CorePropertyInterpolators

这应该可以解决问题。

关于java - 非法参数异常 : No interpolator found for float during implementing Substance LAF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36942256/

相关文章:

java - 如何在 spring bean 上强制/验证 spring 范围注释

java - 在不忽略 SSL 错误的情况下,Android Web View 中握手失败的 SSL 错误的最佳解决方案

java - 使用 XML 和 Java Swing Synth LaF 设置按钮的字体颜色

java - Eclipse 中的 Napkin 自定义 LookAndFeel

java - Java List 的简化边界检查

java - Hibernate 类型与 Struts 2 的映射错误

java - 如何使用 Swing 计时器 ActionListener

java - 使用 JOptionPane 的 Java 的 If Else 语句

java - 尝试使用渐变绘画时 setPaint() 不起作用

java - 未选择时如何更改 MacOS 中 Java JComboBox 的背景颜色