所以,我使用了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版本。
有任何建议或修复建议吗?
答案 0 :(得分:1)
如果这对你来说还不算太晚,请在https://github.com/kirill-grouchnikov/substance/issues处提交一个错误,以防万一发生在最新的7.1dev版本下。
看起来这种情况发生在Substance和基于Synth的外观(Nimbus?)之间的外观上。我需要看一个示例应用程序来重现它,以便可以修复它。