У меня есть приложение, в котором я должен указать доступные порты для соединения с Arduino. Я использую RxTx. У меня есть проблема в текущем коде: В моем GUI я получаю все порты как ArrayList из этой строкиСписок всех портов как JComboBox
public ArrayList<String> getPortIdentifiers() {
Enumeration portEnum = CommPortIdentifier.getPortIdentifiers();
ArrayList<String> ports = new ArrayList<String>();
while (portEnum.hasMoreElements()) {
CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement();
ports.add(currPortId.getName());
}
return ports;
}
В моем контроллере я получить этот результат и установить результат в представление
this.view.setListPorts(listPorts);
В на мой взгляд, я получаю таким образом, ArrayList и установить массив ComboBox
new JComboBox(this.listPorts.toArray());
public void setListPorts(ArrayList<String> ports) {
this.listPorts = ports;
}
Но я получаю ошибку на этой строке числа
Исключение в нити "АВТ-EventQueue-0" java.lang.NullPointerException
если 'новый JComboBox (this.listPorts.toArray());' является вся строка, то, что не сохраняется в переменной – chancea
Ну, одна вещь, которую я могу видеть, что происходит, что 'ArrayList' не является потокобезопасным, поэтому, возможно, код для добавления в список выполняется таким образом, что он заставляет его думать, что у него есть другой элемент, а затем поток кода, который вы показываете нам, пытается получить доступ к этому элементу, который по-прежнему остается нулевой в памяти, потому что метод 'add' не завершился полностью. – childofsoong
В какой строке возникает ошибка? Нам понадобится больше контекста, чем то, что делает diganose ошибку – MadProgrammer