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:
|