0

このアプリケーションのシリアル ポートで変更する必要があるのは、ポート名/番号だけです。JSSC は、このようなコンボボックスを更新できます

private void jComboBoxCommPortFocusGained(java.awt.event.FocusEvent evt) {                                              
    SetPortNames();
}                                             
private void SetPortNames() {
    jComboBoxCommPort.removeAllItems();
    String[] portNames = SerialPortList.getPortNames();
    for (String portName : portNames) {
        jComboBoxCommPort.addItem(portName);
        System.out.println(portName);
    }
}                                            

しかし、ActionEvent

private void jComboBoxCommPortActionPerformed(java.awt.event.ActionEvent evt) {                                                  
    InitializeSerialPort(jComboBoxCommPort.getSelectedItem().toString());
}                                                 
private void InitializeSerialPort(String port) {
    try {
        if (serialPort.getPortName().contentEquals(port)) return;
        if (serialPort.isOpened()) serialPort.closePort();
        serialPort = new SerialPort(port);
        serialPort.openPort();
        serialPort.setParams(115200, 8, 1, 0);
        serialPort.setEventsMask(SerialPort.MASK_RXCHAR + SerialPort.MASK_CTS);
        serialPort.addEventListener(new SerialPortReader());
    }
    catch (SerialPortException ex) {
        System.out.println(ex);
    }
}

コンボボックスを壊し、これを引き起こします

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at stb.serialization.JFrameSerialization.jComboBoxCommPortActionPerformed(JFrameSerialization.java:157)
    at stb.serialization.JFrameSerialization.access$300(JFrameSerialization.java:19)
    ...

JSSC シリアルポートを変更する正しい方法は何ですか?

4

1 に答える 1