2016-10-08 13 views
0

因此,我使用了物質LookAndFeel外觀之一。對於版本4.0的物質庫沒有這樣的問題。然而,從那裏開始,我首先注意到它在4.3,它不時出現。然後,當我跳上新版本 - 6.17.2.1它是100%持久的時間。使用其他任何L & F完全沒有問題,明確表示問題是物質中的錯誤。尋找它,我看到其他一些人也在經歷。Substance LookAndFeel字體問題

不幸的是,開發停滯在每this

然而,異常狀態:在sun.font.FontDesignMetrics $ MetricsKey.init(FontDesignMetrics.java:217)螺紋

例外 「AWT-EventQueue的-0」 顯示java.lang.NullPointerException 在sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:286) at sun.swing.SwingUtilities2.getFontMetrics(SwingUtilities2.java:1113) at javax.swing.JComponent.getFontMetrics(JComponent.java:1626) at sun .swing.MenuItemLayoutHelper.reset(MenuItemLayoutHelper.java:126) at javax.swing.plaf.synth.SynthMenuItemLayoutHelper。(Syn thMenuItemLayoutHelper.java:119) 在javax.swing.plaf.synth.SynthGraphicsUtils.getPreferredMenuItemSize(SynthGraphicsUtils.java:437) 在javax.swing.plaf.synth.SynthMenuItemUI.getPreferredMenuItemSize(SynthMenuItemUI.java:216) 在的javax。 Swing.plaf.basic.BasicMenuItemUI.getPreferredSize(BasicMenuItemUI.java:367) at javax.swing.JComponent.getPreferredSize(JComponent.java:1662) at javax.swing.BoxLayout.checkRequests(BoxLayout.java:484) at javax.swing.BoxLayout.preferredLayoutSize(BoxLayout.java:301) at javax.swing.plaf.basic.DefaultMenuLayout.preferredLayoutSize(DefaultMenuLayout.java:60) at javax.swing.plaf.synth.SynthMenuLayout.preferredLayoutSize(SynthMenuLayout。 java:51) at java.awt.Container.pref在javax.swing.JComponent.getPreferredSize(JComponent.java:1664)上的java.awt.Container.getPreferredSize(Container.java:1780) (位於javax.swing.JMenu.getPopupMenuOrigin()上的erredSize(Container.java:1796) JMenu.java:377) 在javax.swing.JMenu.setPopupMenuVisible(JMenu.java:343) 在javax.swing.JPopupMenu.menuSelectionChanged(JPopupMenu.java:1478) 在javax.swing.MenuSelectionManager.setSelectedPath(對象MenuSelectionManager。 Java的:125) 在javax.swing.plaf.basic.BasicMenuUI.appendPath(BasicMenuUI.java:222) 在javax.swing.plaf.basic.BasicMenuUI.access $ 200(BasicMenuUI.java:49) 在javax.swing中.plaf.basic.BasicMenuUI $ Handler.mousePressed(BasicMenuUI.java:461) at java.awt.Component.proce在java.awt.Component.processEvent(Component.java:6300) at java.awt.Container.processEvent(Component.java:6532) Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4891) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Component.dispatchEvent(Component。 java:4713) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4522) at java.awt.LightweightDispatcher。dispatchEvent(Container.java:4466) at java.awt.Container.dispatchEventImpl(Container.java:2280) at java.awt.Window.dispatchEventImpl(Window.java:2750) at java.awt.Component.dispatchEvent( Component.java:4713) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access $ 500(EventQueue.java:97) at java.awt.EventQueue $ 3.run( EventQueue.java:709) at java.awt.EventQueue $ 3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain。 java:76) at java.security.ProtectionDomain $ JavaSecurityAccessImpl.doInsectionPrivil ege(ProtectionDomain.java:86) at java.awt.EventQueue $ 4.run(EventQueue.java:731) at java.awt.EventQueue $ 4.run(EventQueue.java:729) at java.security.AccessController。 doPrivileged的(本地方法) 在java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) 在java.awt.EventQueue.dispatchEvent(EventQueue.java:728) 在org.graffiti.editor.GlobalHotkeyManager.dispatchEvent (GlobalHotkeyManager.java:65) 在java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 在java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 在java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread .java:105) 在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 在java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

我知道那裏沒有任何物質類的蹤跡,這使得追蹤更加困難。

如果有人知道我可以報告的地方,他/她可以很樂意分享。

這將是一個遺憾,如果我需要在固定其他一些討厭的錯誤已經投入時間後放棄它或回落到上次工作版本 - 4.0,從遙遠的2007年

而且,最糟糕的部分是 - a major bugfix關於4.3_02中的InternalFrames,實際上屬於字體錯誤版本。

任何建議或修復建議?

+1

在EOL和EndOfInterest之後,大部分開發人員都開始構建JavaFX,但大部分的優秀人才都被Oracle拒絕(與Sun合併後) – mKorbel

回答

1

如果這對你來說還不算太晚,請在https://github.com/kirill-grouchnikov/substance/issues上提交一個bug,以防最新的7.1dev版本發生。

在Substance和基於Synth的外觀(Nimbus?)之間的外觀和感覺切換過程中發生這種情況。我需要看到一個示例應用程序來重現這一點,以便它可以修復。