我有一个applet在加载时在此行(但仅有时)生成nullpointer异常:

(txtpnNoSeHa是扩展JPanel的类中的JEditorPane。此面板在applet构造函数中实例化)

txtpnNoSeHa.setBackground(UIManager.getColor("Panel.background"));


在构造函数内部调用。

我从中了解到,UIManager.getColor有时会返回null,这可能是因为尚未加载某些数据(未显示任何摆动面板或类似内容)

该小程序是使用eclipse的窗口构建器设计的。我怎样才能解决这个问题?任何人都可以对此有所了解吗?

最佳答案

如您所预料的,第一个摆动组件一旦可见,就会加载UIManager。这可能会导致null值。您可以在UIManager例程的开头(对于小程序为main)通过此调用手动加载init

try {
    UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
} catch(InvocationTargetException | UnsupportedLookAndFeelException e) {
    e.printStackTrace();
}

关于java - UIManager.getColor有时返回null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15798875/

10-09 06:07