Java uygulamamız çalışırken Windows 7'deki Windows Teması (right-click Desktop > Personalize
aracılığıyla) değiştirirken bir istisna alıyoruz. İnternette arama yapmak bazı sonuçlar doğurdu, ancak çoğunlukla daha önce çözüldüğünü iddia eden java hata raporlarıyla ilgili."java.lang.InternalError: HTHEME is null" isteğe bağlı JRE'lerde (Windows)
java.lang.InternalError: HTHEME is null
at sun.awt.windows.ThemeReader.paintBackground(Native Method)
at sun.awt.windows.ThemeReader.paintBackground(Unknown Source)
at com.sun.java.swing.plaf.windows.XPStyle$SkinPainter.paintToImage(Unknown Source)
at sun.swing.CachedPainter.paint0(Unknown Source)
at sun.swing.CachedPainter.paint(Unknown Source)
at com.sun.java.swing.plaf.windows.XPStyle$Skin.paintSkinRaw(Unknown Source)
at com.sun.java.swing.plaf.windows.AnimationController.paintSkin(Unknown Source)
at com.sun.java.swing.plaf.windows.XPStyle$Skin.paintSkin(Unknown Source)
at com.sun.java.swing.plaf.windows.XPStyle$Skin.paintSkin(Unknown Source)
at com.sun.java.swing.plaf.windows.WindowsScrollBarUI.paintThumb(Unknown Source)
at javax.swing.plaf.basic.BasicScrollBarUI.paint(Unknown Source)
at javax.swing.plaf.ComponentUI.update(Unknown Source)
at javax.swing.JComponent.paintComponent(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
at java.awt.Container.paint(Unknown Source)
at java.awt.Window.paint(Unknown Source)
at javax.swing.RepaintManager$4.run(Unknown Source)
at javax.swing.RepaintManager$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.access$1200(Unknown Source)
at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(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 Source)
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.pumpEventsForFilter(Unknown Source)
at java.awt.WaitDispatchSupport$2.run(Unknown Source)
at java.awt.WaitDispatchSupport$4.run(Unknown Source)
at java.awt.WaitDispatchSupport$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(Unknown Source)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.example.App$130$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(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 Source)
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.pumpEventsForFilter(Unknown Source)
at java.awt.WaitDispatchSupport$2.run(Unknown Source)
at java.awt.WaitDispatchSupport$4.run(Unknown Source)
at java.awt.WaitDispatchSupport$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(Unknown Source)
... goes on and on
LAF ile ilişkili gibi görünmektedir: Bu kesilmiş ve kısmen gizlenmiş yığın izidir. Uygulama , başlatıldıktan sonra LAF'yi değiştirmeyi desteklemez. Ancak, başlangıçta
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
'u arar. Bu, bir Windows 7 Enterprise x64 makinesinde, 1.8.0_74 64bit'ı rasgele bir JRE sürümü çalıştırarak gerçekleşir. This, oldukça benzer ve varsayılan olarak çözündüğü varsayılan bir Java hata raporu örneğidir.
Neden birinin neden olabileceğine ve nasıl çalışılabileceğine biraz ışık tutabiliyorsunuz (açık olan "Windows'un görünüşünü ve görünüşünü ayarlama")?
P.S. .: bağlantılı hata raporu istemlerde bir yorum: SwingSet3 bir JTable
gösteren iken
A good application to reproduce the issue is SwingSet3 (https://java.net/projects/Swingset3).
Change Look-and-Feel to Windows, and click JInternalFrame in the list of components on the left. Create several more internal frames. Try switching Windows themes: Windows 7 Basic ??? Windows Classic.
ama biz, sadece bizim için tek bir zaman oldu yapıyor hiç şans vardı.
Düzenleme: Bu, Windows Teması değiştiğinde gerçekleşir - ister elle ister, isterse kullanıcı, Java uygulamasını çalıştıran makineye Uzak Masaüstü aracılığıyla oturum açtığında. Daha duyarlı bir arabirim sağlamak için, Aero devre dışı bırakılabilir ve Windows Klasik tabanlı temasa geçme otomatik olarak yapılabilir. Soruyu buna göre düzenledim.