Mit Java Text zum LCD senden
Ziel:
package lcdshield;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import
javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import jssc.SerialPort;
import jssc.SerialPortException;
@SuppressWarnings("serial")
public class TextZuArduino
extends JFrame implements DocumentListener,
ActionListener {
private SerialPort sp;
private JTextField
txtObereZeile;
private JTextField
txtUntereZeile;
private JButton
btnSenden;
private JButton
btnLoeschen;
private JLabel
lblObereZeile;
private JLabel
lblUntereZeile;
private String
obererText, untererText;
public TextZuArduino() throws
SerialPortException {
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setBounds(200, 200, 330, 170);
this.setTitle("Text zu Arduino LCD");
this.setLayout(null);
this.createComponents();
this.setVisible(true);
// hier mußt Du Deinen Port eintragen:
sp =
new SerialPort("/dev/tty.usbmodem24131");
sp.openPort();
sp.setParams(9600, 8, 1, 0);
}
private void
createComponents() {
txtObereZeile = new JTextField();
txtObereZeile.setBounds(10, 10, 170, 25);
txtObereZeile.getDocument().addDocumentListener(this);
this.add(txtObereZeile);
txtUntereZeile = new JTextField();
txtUntereZeile.setBounds(10, 40, 170, 25);
txtUntereZeile.getDocument().addDocumentListener(this);
this.add(txtUntereZeile);
lblObereZeile = new JLabel("noch 16 Zeichen");
lblObereZeile.setBounds(185, 10, 200, 25);
this.add(lblObereZeile);
lblUntereZeile = new JLabel("noch 16 Zeichen");
lblUntereZeile.setBounds(185, 40, 200, 25);
this.add(lblUntereZeile);
btnSenden = new JButton("senden");
btnSenden.setBounds(10, 70, 170, 25);
btnSenden.addActionListener(this);
this.add(btnSenden);
btnLoeschen = new JButton("clear");
btnLoeschen.setBounds(10, 95, 170, 25);
btnLoeschen.addActionListener(this);
this.add(btnLoeschen);
}
@Override
public void
actionPerformed(ActionEvent ae) {
if
(ae.getSource() == btnLoeschen) {
txtObereZeile.setText("");
txtUntereZeile.setText("");
}
try {
sp.writeString(obererText + "\n");
sp.writeString(untererText + "\n");
}
catch (SerialPortException spe) {
spe.printStackTrace();
}
}
private void
laengeMessen() {
obererText = txtObereZeile.getText();
lblObereZeile.setText("noch "
+
String.valueOf(16 - obererText.length()) + " Zeichen");
if
(obererText.length() > 16) {
lblObereZeile.setText("zu lang!");
}
untererText = txtUntereZeile.getText();
lblUntereZeile.setText("noch "
+
String.valueOf(16 - untererText.length()) + " Zeichen");
if
(untererText.length() > 16) {
lblUntereZeile.setText("zu lang!");
}
}
@Override
public void
changedUpdate(DocumentEvent e) {
laengeMessen();
}
@Override
public void
insertUpdate(DocumentEvent dEvnt) {
laengeMessen();
}
@Override
public void
removeUpdate(DocumentEvent dEvnt) {
laengeMessen();
}
public static void
main(String args[]) throws SerialPortException {
new
TextZuArduino();
}
}
Arduino-Program:
|