Code:
SerialPort[] portNames = SerialPort.getCommPorts();
for(int i = 0; i < portNames.length; i++)
portList.addItem(portNames[i].getSystemPortName());
connectButton.addActionListener(new ActionListener(){
@Override public void actionPerformed(ActionEvent arg0) {
if(connectButton.getText().equals("Connect")) {
chosenPort = SerialPort.getCommPort(portList.getSelectedItem().toString());
chosenPort.setComPortTimeouts(SerialPort.TIMEOUT_SCANNER, 0, 0);
if(chosenPort.openPort()) {
connectButton.setText("Disconnect");
portList.setEnabled(false);
Thread thread = new Thread(){
@Override public void run() {
Scanner scanner = new Scanner(chosenPort.getInputStream());
while(scanner.hasNextLine()) {
try {
String sb = scanner.nextLine();
textField.setText(sb.toString());
} catch(Exception e) {}
}
scanner.close();
}
};
thread.start();
Senden.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
PrintWriter output = new PrintWriter(chosenPort.getOutputStream());
output.print(textField.getText() + "\r");
output.flush();
textField.setText("");
}
});
zum InputStream: ich will die serielle schnitstelle über ein Jtextarea ausgeben und dabei nach jeden String einen Zeilenumbruch machen, so dass ich immer nach oben scrollen kann um zu sehen was bisher über den Inputstream reinkam. doch zur Zeit zeigt mir das textarea gar nichts an.
Zuletzt bearbeitet von einem Moderator: