首页 / 浏览问题 / 组件GIS / 问题详情
java版组件SymbolDialog调用showDialog失败报java.lang.NullPointerException
2EXP 2025年12月30日
SymbolDialog symbolDialog = new SymbolDialog();
DialogResult result = symbolDialog.showDialog(MapControl.getMap().getWorkspace().getResources(), new GeoStyle(), SymbolType.MARKER);

1个回答

您好,报错信息很清晰java.lang.NullPointerException;

所以,我们现在需要找到究竟什么元素为null,从而引起了这个异常;

您这里可以把参数全部打印出来并确认下,看看参数有无异常,如果无异常,可以到代码中确认哪个变量为null,根据这个结果进行下一步处理;

希望能帮助到您
1,550EXP 2025年12月30日

看着是这个ColorArrayPanel类里读文件出的错,不过我看引用的组件类包里有这个文件
是292行还是294行的代码抛的空指针呢,读文件读不到不会报这个错误,具体是哪个对象为null?
package SuperMap_Gis;
import com.supermap.data.*;
import com.supermap.ui.DialogResult;
import com.supermap.ui.SymbolDialog;

public class main_start {
    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(() -> {
            try{
                SymbolDialog symbolDialog = new SymbolDialog();
                DialogResult result = symbolDialog.showDialog(new Workspace().getResources() , new GeoStyle(), SymbolType.MARKER);
            } catch (Exception exception) {
                System.out.println(exception.getMessage());
            }
        });
    }
}

294行报的错,我就这样调用一个实例,也是报同样的问题

...