。我使用FileChooser
获得以下NPE。这是一个尚未被太阳修复的已知错误。 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6342301
有人知道防范此异常的解决方法吗?
感谢。 安德烈
线程“AWT-EventQueue-2”中的异常java.lang.NullPointerException 在 javax.swing.plaf.metal.MetalFileChooserUI中的$ IndentIcon.getIconWidth(未知 来自)javax.swing.SwingUtilities.layoutCompoundLabelImpl(未知 来源)在javax.swing.SwingUtilities.layoutCompoundLabel(未知 来源)在javax.swing.plaf.basic.BasicLabelUI.layoutCL(未知 来源)at javax.swing.plaf.basic.BasicLabelUI.getPreferredSize(未知来源) 在javax.swing.JComponent.getPreferredSize(未知来源)at javax.swing.plaf.basic.BasicListUI.updateLayoutState(未知来源) 在javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(未知 来源)at javax.swing.plaf.basic.BasicListUI中的$ Handler.valueChanged(未知 来源)at javax.swing.DefaultListSelectionModel.fireValueChanged(未知来源) 在javax.swing.DefaultListSelectionModel.fireValueChanged(未知 来源)at javax.swing.DefaultListSelectionModel.fireValueChanged(未知来源) 在javax.swing.DefaultListSelectionModel.changeSelection(未知 来源)at javax.swing.DefaultListSelectionModel.changeSelection(未知来源) 在javax.swing.DefaultListSelectionModel.setSelectionInterval(未知 来自)javax.swing.JList.setSelectedIndex(未知来源)at javax.swing.plaf.basic.BasicComboPopup.setListSelection(未知 来源)在javax.swing.plaf.basic.BasicComboPopup.access $ 300(未知 来源)at javax.swing.plaf.basic.BasicComboPopup中的$ Handler.itemStateChanged(未知 来源)在javax.swing.JComboBox.fireItemStateChanged(未知来源) 在javax.swing.JComboBox.selectedItemChanged(未知来源)at javax.swing.JComboBox.contentsChanged(未知来源)
答案 0 :(得分:1)
在您链接的错误报告中,他们还提到了一种解决方法。 它似乎归结为按特定顺序调用方法。 你试过了吗?
问题描述: 似乎之间存在无证的不良互动 明确地设置UI并删除所有文件过滤器,甚至是暂时的。 如果在设置ui之前完成后者,则尝试显示文件对话框 将抛出一个异常,但如果ui在搞乱之前被设置则不会 过滤器。也许有可能使代码更强大 这个或在文档中包含警告?
重现问题的步骤: 运行附加的程序:它不会炸弹。然后移动setUI 行到构造函数的底部,然后再试一次:它会。
答案 1 :(得分:1)
所以,现在注册账号:)
上述链接中的这些步骤的问题是,UI的外观和感觉是在我们的软件中全局设置的。因此,在我能够操作文件过滤器之前设置UI。
编辑:错误地理解了复制代码。示例如上所述。感谢。
答案 2 :(得分:0)
似乎解决方法说明应尝试在操作过滤器之前设置UI。这不起作用吗?
如果这不起作用,是否可以在设置UI的同一点创建被操纵的FileFilters的实例?