У меня есть следующий код.
MessageDialog dialog = new MessageDialog(new Shell(), "title", null, "message", MessageDialog.QUESTION, choices, 0); // choices is an array
Это дает NPE, когда я делаю dialog.open(). Любая подсказка?
dialog.open()
Вы не можете создать такую оболочку. Вам необходимо получить доступ к существующей оболочке из контекста, в котором вы запускаете диалог. Если у вас есть ссылка на какой-либо элемент управления SWT, вы можете получить доступ к оболочке оттуда.
Похоже, что некоторые значения могут быть нулевыми в choices.
choices
Обычный способ использовать MessageDialog - это один из статических методов open *, например, MessageDialog.openInformation(...). Но ваша проблема может быть связана с оболочкой, которую вы передаете.
MessageDialog.openInformation(...)