1

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) 

何か案は?

4

1 に答える 1

0

良い時間を過ごした後、これに対する解決策を見つけました。エラー

java.lang.IllegalArgumentException: java.lang.Float:java.lang.Float のインターポレーターが見つかりません

TimelinePropertyBuilderクラスのコードとは関係ありません。代わりに、それぞれの最上位ライブラリのファイルが欠落しています。trident-plugin.propertiesMETA-INFInterpolator クラスのソースが正確に定義されています。

したがって、それを探す代わりに、非常に必要なものを次に示します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

これで解決するはずです。

于 2016-10-08T00:26:24.550 に答える