2008-09-19 3 views
3

sur les systèmes Windows. Je reçois le NPE suivant avec le FileChooser. C'est un bug connu qui n'est pas encore fixé par le soleil. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6342301

Est-ce que quelqu'un sait une solution de contournement pour éviter cette exception?

Merci. André

Exception dans le thread "AWT-EventQueue-2" java.lang.NullPointerException à javax.swing.plaf.metal.MetalFileChooserUI $ IndentIcon.getIconWidth (Source inconnue ) à javax.swing.SwingUtilities .layoutCompoundLabelImpl (Information inconnue Source) à javax.swing.SwingUtilities.layoutCompoundLabel (Information inconnue Source) à javax.swing.plaf.basic.BasicLabelUI.layoutCL (Information inconnue Source) à javax.swing.plaf.basic.BasicLabelUI.getPreferredSize (Source inconnue) at javax.swing.JComponent.getPreferredSize (Source inconnue) à jav ax.swing.plaf.basic.BasicListUI.updateLayoutState (source inconnue) à javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState (Unknown Source) à javax.swing.plaf.basic.BasicListUI $ Handler.valueChanged (Inconnu Source) à javax.swing.DefaultListSelectionModel.fireValueChanged (Source inconnue) à javax.swing.DefaultListSelectionModel.fireValueChanged (Information inconnue Source) à javax.swing.DefaultListSelectionModel.fireValueChanged (Source inconnue) à javax.swing.DefaultListSelectionModel .changeSelection (Unknown Source) à javax.swing.DefaultListSelectionModel.changeSelection (source inconnue) at javax.swing.DefaultList SelectionModel.setSelectionInterval (Information inconnue Source) à javax.swing.JList.setSelectedIndex (Source inconnue) à javax.swing.plaf.basic.BasicComboPopup.setListSelection (Information inconnue Source) à javax.swing.plaf.basic.BasicComboPopup.access 300 $ (Source inconnue ) à javax.swing.plaf.basic.BasicComboPopup $ Handler.itemStateChanged (Source inconnue ) à javax.swing.JComboBox.fireItemStateChanged (Source inconnue) à javax.swing.JComboBox.selectedItemChanged (Source inconnue) à javax.swing.JComboBox.contentsChanged (Source inconnue)

Répondre

1

Dans le rapport de bogue que vous avez lié, ils ont aussi les hommes une solution de contournement. Il semble se résumer à appeler les méthodes dans un ordre spécifique. Avez-vous essayé?

DESCRIPTION DU PROBLÈME: Il semble y avoir une mauvaise intereaction sans papier entre réglage l'interface utilisateur et explicitement supprimer tous les filtres de fichiers, même temporairement. Si ce dernier est fait avant de définir l'interface utilisateur, essayer d'afficher une boîte de dialogue de fichier lèvera une exception, mais pas si l'interface utilisateur a été définie avant de jouer avec les filtres . Peut-être qu'il est possible de rendre le code plus robuste contre cela ou d'inclure un avertissement dans les docs?

ÉTAPES À SUIVRE POUR REPRODUIRE LE PROBLÈME: Exécutez le programme joint: il ne bombardera pas. Puis déplacez la ligne setUI vers le bas du constructeur et réessayez: il le fera.

1

Donc, maintenant avec compte enregistré :)

Le problème avec ces étapes dans le lien mentionné est que l'apparence et à cet effet l'interface utilisateur est définie globaly dans notre logiciel. L'interface utilisateur est donc définie avant que je puisse manipuler les filtres de fichiers.

Édition: Mal compris le code pour la reproduction. L'exemple fonctionne comme mentionné. Merci.

0

Il semble que la description de la solution de contournement indique que devrait essayer de définir l'interface utilisateur avant de manipuler les filtres. Est-ce que ça ne marche pas?

Si cela ne fonctionne pas, est-il possible de créer une instance de vos FileFilters manipulés au même point que vous définissez votre interface utilisateur?

Questions connexes