0

所以,我使用了一种 Substance LookAndFeel 皮肤。对于4.0版的物质库,没有这样的问题。但是,从那里开始,我第一次注意到它是在4.3中,它不时出现。然后,当我跳上较新的版本 - 6.17.2.1时,它 100% 的时间都是持久的。使用任何其他 L&F 完全没有问题,这显然意味着问题是Substance 中的错误。搜索了一下,发现其他人也在经历。

可悲的是,发展因此而停滞不前。

然而,例外状态:

sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:286) 处 sun.font.FontDesignMetrics$MetricsKey.init(FontDesignMetrics.java:217) 处的线程“AWT-EventQueue-0”java.lang.NullPointerException 异常。 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) .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) 在 java.awt.Container.preferredSize(Container.java:1796)在 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) 在 java.awt.Component.processMouseEvent(Component.java:6532) 在 javax.swing.JComponent.processMouseEvent(JComponent.java:3324) 在 java .awt.Component.processEvent(Component.java:6300) 在 java.awt.Container 的 java.awt.Component.dispatchEventImpl(Component.java:4891) 在 java.awt.Container.processEvent(Container.java:2236)。 dispatchEventImpl(Container.java:2294) 在 java.awt.Component.dispatchEvent(Component.java:4713) 在 java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) 在 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) 在 java.awt.Component.dispatchEvent(Component.java:4713) 在 java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) 在 java.awt.EventQueue.access$500(EventQueue.java:97 ) 在 java.awt.EventQueue$3.run(EventQueue.java:709) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.awt.EventQueue$3.run(EventQueue.java:703) 在 java.security。 ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) 在 java.awt.EventQueue$4.run(EventQueue.java:731) 在 java.awt.EventQueue$4.run(EventQueue.java:729) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.security .ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at org.graffiti.editor.GlobalHotkeyManager.dispatchEvent(GlobalHotkeyManager.java:65) at 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。泵事件(EventDispatchThread.java:93)在 java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

我知道那里没有任何物质类的踪迹,因此更难追踪。

如果有人知道我可以在哪里报告,他/她可以很乐意分享。

很遗憾,如果我在已经投入时间修复其他一些讨厌的错误之后需要放弃它,或者从遥远的 2007 年回退到最后一个工作版本 - 4.0 。

此外,最糟糕的是 -在4.3_02中有一个关于 InternalFrames的主要错误修复,实际上属于字体错误版本。

有什么建议或修复建议吗?

4

1 回答 1

1

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

看起来这发生在 Substance 和基于 Synth 的外观(Nimbus?)之间的外观切换期间。我需要查看重现此问题的示例应用程序,以便对其进行修复。

于 2017-07-14T18:29:42.650 回答