Ciao a tutti
ho un problema col mio programma.
Ho un JDesktopPane che contiene dei JInternalFrame che si aprono da un JMenuBar nella parte superiore.
Ho impostato inizialmente il look and feel "Nimbus" all'applicativo, ma può essere sostituito in base ad una mia scelta con alcuni L&F scaricati oppure quelli di sistema.
Il tutto funziona correttamente, tranne che per una piccola cosa che non riesco a capire.
Nel JDesktopPane ho realizzato un Listener, non appena clicco col tasto destro sopra il JDesktopPane viene aperto una piccolo popup per il cambiamento della immagine di sfondo.
Se il Look&Feel rimane come quello applicato all'inizio allora non vi è alcun problema e posso applicare tutti i cambiamenti che avevo sviluppato
Invece dopo aver cambiato, non appena faccio click col tasto destro e mi parte un eccezione di NullPointerException che riporto di seguito:
codice:Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at sun.font.FontDesignMetrics$MetricsKey.init(Unknown Source) at sun.font.FontDesignMetrics.getMetrics(Unknown Source) at sun.swing.SwingUtilities2.getFontMetrics(Unknown Source) at javax.swing.JComponent.getFontMetrics(Unknown Source) at sun.swing.MenuItemLayoutHelper.reset(Unknown Source) at javax.swing.plaf.synth.SynthMenuItemLayoutHelper.<init>(Unknown Source) at javax.swing.plaf.synth.SynthGraphicsUtils.getPreferredMenuItemSize(Unknown Source) at javax.swing.plaf.synth.SynthMenuItemUI.getPreferredMenuItemSize(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI.getPreferredSize(Unknown Source) at javax.swing.JComponent.getPreferredSize(Unknown Source) at javax.swing.BoxLayout.checkRequests(Unknown Source) at javax.swing.BoxLayout.preferredLayoutSize(Unknown Source) at javax.swing.plaf.synth.DefaultMenuLayout.preferredLayoutSize(Unknown Source) at java.awt.Container.preferredSize(Unknown Source) at java.awt.Container.getPreferredSize(Unknown Source) at javax.swing.JComponent.getPreferredSize(Unknown Source) at javax.swing.JPopupMenu.adjustPopupLocationToFitScreen(Unknown Source) at javax.swing.JPopupMenu.getPopup(Unknown Source) at javax.swing.JPopupMenu.setVisible(Unknown Source) at javax.swing.JPopupMenu.show(Unknown Source) at com.sport.listener.BackImageDesktopFrame.showPopup(BackImageDesktopFrame.java:131) at com.sport.listener.BackImageDesktopFrame.mouseReleased(BackImageDesktopFrame.java:125) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) etc etc.... ... ...
Non riesco a capire a cosa si riferisce il NullPointerException visto che non è nulla che appartiene a quello da me sviluppato
Quello che faccio per applicare il L&F è il seguente:
codice:try { UIManager.setLookAndFeel(UIManager.getInstalledLookAndFeels()[choose].getClassName()); SwingUtilities.updateComponentTreeUI(this); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (UnsupportedLookAndFeelException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }
Nel try faccio la scelta dell' L&F (le ho installate precedentemente), e poi la applico a tutte le UI come ho fatto in altre occasioni.
Se vi serve qualche altra info fatemi sapere.
Grazie.
Ciao.

Rispondi quotando

) si arriva alla solita eccezione.