Substance LookAndFeel字体问题

时间:2016-10-08 10:51:02

标签: java swing exception fonts substance

所以,我使用了Substance LookAndFeel皮肤之一。对于物质库的 4.0 版本,没有这样的问题。但是,从那里开始,我首先在 4.3 中注意到它,它不时地出现在那里。然后,当我跳过较新的版本 - 6.1 7.2.1 时,它会持续100%的持续时间。使用任何其他L& Fs都没有任何问题,显然意味着问题是物质中的错误。搜索它,我看到其他一些人也在体验。

可悲的是,根据this,开发工作停滞不前。

然而,例外情况表明:

  

线程中的异常" AWT-EventQueue-0"显示java.lang.NullPointerException       at sun.font.FontDesignMetrics $ MetricsKey.init(FontDesignMetrics.java:217)       at sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:286)       at sun.swing.SwingUtilities2.getFontMetrics(SwingUtilities2.java:1113)       在javax.swing.JComponent.getFontMetrics(JComponent.java:1626)       在sun.swing.MenuItemLayoutHelper.reset(MenuItemLayoutHelper.java:126)       在javax.swing.plaf.synth.SynthMenuItemLayoutHelper。(SynthMenuItemLayoutHelper.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)       在javax.swing.JComponent.getPreferredSize(JComponent.java:1662)       在javax.swing.BoxLayout.checkRequests(BoxLayout.java:484)       在javax.swing.BoxLayout.preferredLayoutSize(BoxLayout.java:301)       在javax.swing.plaf.basic.DefaultMenuLayout.preferredLayoutSize(DefaultMenuLayout.java:60)       在javax.swing.plaf.synth.SynthMenuLayout.preferredLayoutSize(SynthMenuLayout.java:51)       at java.awt.Container.preferredSize(Container.java:1796)       at java.awt.Container.getPreferredSize(Container.java:1780)       在javax.swing.JComponent.getPreferredSize(JComponent.java:1664)       在javax.swing.JMenu.getPopupMenuOrigin(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.processMouseEvent(Component.java:6532)       在javax.swing.JComponent.processMouseEvent(JComponent.java:3324)       at java.awt.Component.processEvent(Component.java:6300)       at java.awt.Container.processEvent(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.doIntersectionPrivilege(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(Native Method)       at java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)       at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)       在org.graffiti.editor.GlobalHotkeyManager.dispatchEvent(GlobalHotkeyManager.java:65)       at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)       at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)       at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)       at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)       at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)       在java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

我知道那里没有任何Substance类的跟踪,这使得追踪变得更加困难。

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

如果我已经投入时间修复其他一些令人讨厌的错误,或者从遥远的2007年回归到最后一个工作版本 4.0 ,我将需要放弃它,这将是一个遗憾。 / p>

此外,最糟糕的是 - 4.3_02 中有关于InternalFrame的a major bugfix,实际上属于font-buggy版本。

有任何建议或修复建议吗?

1 个答案:

答案 0 :(得分:1)

如果这对你来说还不算太晚,请在https://github.com/kirill-grouchnikov/substance/issues处提交一个错误,以防万一发生在最新的7.1dev版本下。

看起来这种情况发生在Substance和基于Synth的外观(Nimbus?)之间的外观上。我需要看一个示例应用程序来重现它,以便可以修复它。