Интеграция Java Look and Feel в приложение в NetBeans

Я разрабатываю Java-программу с использованием NetBeans

Я добавил внешний вид в приложение с графическим интерфейсом, которое называется Synthetica AluOxide Look and Feel с этого веб-сайта: http://www.javasoft.de/synthetica/themes/.

Я добавил Synthetica.jar и синтетический AluOxide.jar, используя диалоговое окно "Добавить Jar/Folder" или "Мои библиотеки проекта".

и затем я добавил этот код в класс загрузки:

import de.javasoft.plaf.synthetica.SyntheticaAluOxideLookAndFeel;

,,,

try 
    {
      UIManager.setLookAndFeel(new SyntheticaAluOxideLookAndFeel());
    } 
    catch (Exception e) 
    {
      e.printStackTrace();
    }

но когда я запускаю свое приложение, я не получаю никаких изменений, и я получаю эту ошибку, когда нажимаю на какой-либо компонент в моем приложении:

Исключение в потоке "AWT-EventQueue-0" java.lang.NullPointerException в sun.font.FontDesignMetrics$MetricsKey.init(FontDesignMetrics.java:217) в sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:28). Качать.SynthMenuItemLayoutHelper.(SynthMenuItemLayoutHelper.java:119) при javax.swing.plaf.synth.SynthGraphicsUtils.paint(SynthGraphicsUtils.java:498) в javax.swing.plaf.synth.SynthMenuUI.paint(SynthMenuUI.java:283) в javax.swing.plaf.synth.SynthMenuUI.update(SynthMenuUI.java:248) в javax.swing.JComponent.paintComponent(JComponent.java:769) в javax.swing.JComponent.paint(Javax10. javom45ent).swing.JComponent.paintChildren(JComponent.java:878) в javax.swing.JComponent.paint(JComponent.java:1054) в javax.swing.JComponent.paintChildren(JComponen) t.java:878) в javax.swing.JComponent.paint(JComponent.java:1054) в javax.swing.JLayeredPane.paint(JLayeredPane.java:585) в javax.swing.JComponent.paintChildren(JComponentj).) в javax.swing.JComponent.paint(JComponent.java:1054) в javax.swing.JComponent.paintToOffscreen(JComponent.java:5212) в javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaint).RepaintManager.paint(RepaintManager.java:1236) по адресу javax.swing.JComponent._paintImmediately(JComponent.java:5160) по адресу javax.swing.JComponent.paintImmediately(JComponent.java:4971) по адресу jRavaxsw (RepaintManager.java:796) в javax.swing.RepaintManager$3.run(RepaintManager.java:784) в java.security.AccessController.doPrivileged(собственный метод) в java.security.ProtectionDomain$1.doIntersectionPrivilege: ProtectionDomain) в javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:784) в javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:757) в javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706) по адресу javax.swing.RepaintManager.access$1000(RepaintManager.java:62) по адресу javax.swing.RepaintManager$ProcessingRunnable.run(RepavaM16ager).awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) в java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727) в java.awt.EventQueue.access$200(EventQueue.java:103) в java.EventQueue$3.run(EventQueue.java:688) в java.awt.EventQueue$3.run(EventQueue.java:686) в java.security.AccessController.doPrivileged(собственный метод) в java.security.ProtectionDomain $ 1.doIntersectionPrigege 0 в java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) в java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) в java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) в java.awt.EventDispatchThread.run(EventDispatchThread.java:91) Исключение в потоке "AWT-EventQueue. lang.NullPointerException в sun.font.FontDesignMetrics$MetricsKey.init(FontDesignMetrics.java:217) в sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:286) в sun.swing.SwingUtilities2.jF: по адресу javax.swing.JComponent.getFontMetrics(JComponent.java:1615) по адресу sun.swing.MenuItemLayoutHelper.reset(MenuItemLayoutHelper.java:126) по адресу javax.swing.plaf.synth.SynthMenht.swing.plaf.synth.SynthGraphicsUtils.paint (SynthGraphicsUtils.java:498) при javax.swing.plaf.synth.SynthMenuItemUI.paint(SynthMenuItemUI.java:283) в javax.swing.plaf.synth.SynthMenuItemUI.update(SynthMenuItemUI.java:247) на javax.swing.JComponent.paintComponent(JComponent.java:769) на javax.swing.JComponent.paint(JComponent.java:1045) на javax.swing.JComponent.paintChildren(JComponent.java:878) на javax.swing.JComponent.paint(JComponent.java:1054) на javax.swing.JComponent.pjjffo: 5212) по адресу javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1512) по адресу javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1443) по адресу javax.swing.BufferStrategyPaint (BugPanagerManagerManager):311) по адресу javax.swing.RepaintManager.paint(RepaintManager.java:1236) по адресу javax.swing.JComponent._paintImmediately(JComponent.java:5160) по адресу javax.swing.JComponent.paintImmediately (JComponent) java swing.RepaintManager$3.run(RepaintManager.java:796) в javax.swing.RepaintManager$3.run(RepaintManager.java:784) в java.security.AccessController.doPrivileged(собственный метод) в java.security.ProtectionDomain $ Домен (ProtectionDomain.java:76) в javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:784) в javax.s wing.RepaintManager.paintDirtyRegions (RepaintManager.java:757) по адресу javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706) по адресу javax.swing.RepaintManager.access $ 1000 (RepaintManager.javMant по адресу) $ProcessingRunnable.run(RepaintManager.java:1651) в java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) в java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727) в java.awtac.vent $ 200 (EventQueue.java:103) в java.awt.EventQueue$3.run(EventQueue.java:688) в java.awt.EventQueue$3.run(EventQueue.java:686) в java.security.AccessController.doPrivileged(родной) Метод) в java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) в java.awt.EventQueue.dispatchEvent(EventQueue.java:697) в java.awt.EventDispatchThread.pumpOneEventForFilatch) at javis Событие (Событие).awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) в java.awt.EventDispatchThread.pumpEventsForHierarchy (Ev entDispatchThread.java:150) в java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:146) в java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) в java.awtThisisd)

1 ответ

Решение

Включили ли вы основную библиотеку Synthetica "синтетика.jar"

  1. Убедитесь, что ваш classpath содержит все библиотеки Synthetica (включая основную библиотеку Synthetica 'синтетический файл.jar').

  2. Включите Synthetica Look and Feel во время запуска в вашем приложении:

    import de.javasoft.plaf.synthetica.SyntheticaClassyLookAndFeel;
    
    
    try {
        UIManager.setLookAndFeel(new SyntheticaClassyLookAndFeel());
    } catch (Exception e) {
        e.printStackTrace();
    }
    
Другие вопросы по тегам