3

在 Windows 系统上。我得到以下 NPE 与FileChooser. 这是一个已知的错误,尚未被 sun 修复。http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6342301

有人知道防止此异常的解决方法吗?

谢谢。安德烈

javax.swing.swing.SwingUtilities.layoutCompoundLabelImpl(Unknown Source) at javax.swing.plaf.metal.MetalFileChooserUI$IndentIcon.getIconWidth(Unknown Source) 的线程“AWT-EventQueue-2”java.lang.NullPointerException 中的异常。 SwingUtilities.layoutCompoundLabel(Unknown Source) at javax.swing.plaf.basic.BasicLabelUI.layoutCL(Unknown Source) at javax.swing.plaf.basic.BasicLabelUI.getPreferredSize(Unknown Source) at javax.swing.JComponent.getPreferredSize(Unknown Source) ) at javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source) at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source) at javax.swing.plaf.basic.BasicListUI$Handler.valueChanged(Unknown Source ) 在 javax.swing 的 javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)。javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source) at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source) at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source) at javax.swing.DefaultListSelectionModel。 setSelectionInterval(Unknown Source) at javax.swing.JList.setSelectedIndex(Unknown Source) at javax.swing.plaf.basic.BasicComboPopup.setListSelection(Unknown Source) at javax.swing.plaf.basic.BasicComboPopup.access$300(Unknown Source)在 javax.swing.plaf.basic.BasicComboPopup$Handler.itemStateChanged(Unknown Source) 在 javax.swing.JComboBox.fireItemStateChanged(Unknown Source) 在 javax.swing.JComboBox.selectedItemChanged(Unknown Source) 在 javax.swing.JComboBox。内容更改(未知来源)

4

3 回答 3

1

在您链接到的错误报告中,他们还提到了一种解决方法。似乎归结为以特定顺序调用方法。你试过吗?

问题描述:在显式设置 UI 和删除所有文件过滤器之间似乎存在未记录的不良交互,即使是暂时的。如果后者是在设置 ui 之前完成的,尝试显示文件对话框将引发异常,但如果 ui 是在弄乱过滤器之前设置的,则不会。也许可以使代码对此更加健壮或在文档中包含警告?

重现问题的步骤:运行附加的程序:它不会爆炸。然后将 setUI 行移动到构造函数的底部并再试一次:它会的。

于 2008-09-19T07:57:02.533 回答
1

So, now with registered account :)

The problem with these steps in the mentioned link is, that the look and feel and therefor the UI is set globaly in our software. So the UI is set before I'm able to manipulate the file filters.

Edit: Missunderstood the code for reproduction. The exampled works as mentioned. Thanks.

于 2008-09-19T08:08:56.233 回答
0

看起来解决方法描述说您应该在操作过滤器之前尝试设置 UI。这不起作用吗?

如果这不起作用,是否可以在您设置 UI 的同时创建您操纵的 FileFilters 的实例?

于 2008-09-19T08:25:03.650 回答