Halllo Community,
ich hatte es ja schon angekündigt.
Ich wollte ein Programm machen, welches verhindert, dass der Anwender falsche Eingaben machen kann.
So hier ist es.
Versucht doch mal in den beiden Eingabefeldern Buchstaben oder Sonderzeichen ein zu geben.
Viel Spaß!!!!!!
Es wird nicht gelingen.
So jetzt die Prokramme App.java und fensterController.java
ich hatte es ja schon angekündigt.
Ich wollte ein Programm machen, welches verhindert, dass der Anwender falsche Eingaben machen kann.
So hier ist es.
Versucht doch mal in den beiden Eingabefeldern Buchstaben oder Sonderzeichen ein zu geben.
Viel Spaß!!!!!!
Es wird nicht gelingen.
So jetzt die Prokramme App.java und fensterController.java
Java:
package com.juelin.projekt8;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
/**
* JavaFX App
*/
public class App extends Application
{
@FXML
private Pane pane;
@FXML
private TextField eingabe1;
@FXML
private TextField eingabe2;
@FXML
private Label anzeige1;
@FXML
private Label anzeige2;
@FXML
private Label anzeige3;
@FXML
private Button knopf1;
@FXML
private Button knopf2;
@FXML
private static Scene scene;
@FXML
private static fensterController gVarRout;
@FXML
@Override
public void start(Stage stage) throws IOException
{
FXMLLoader fxmlLoader = new FXMLLoader(App.class.getResource("fenster.fxml"));
scene = new Scene(fxmlLoader.load(), 900, 600, Color.BLACK);
gVarRout = fxmlLoader.getController();
gVarRout.anzeigeNum = 0;
gVarRout.knopfNum = 0;
gVarRout.einfeldNum = 0;
scene.setFill(Color.BLACK);
stage.setScene(scene);
stage.setTitle("mein erstes Programm mit SceneBuilder");
stage.setX(0);
stage.setY(0);
stage.setWidth(900);
stage.setHeight(600);
stage.centerOnScreen();
stage.setResizable(false);
stage.show();
gVarRout.anzeigeNum = 1;
gVarRout.setAnzeigeText("Datum:");
gVarRout.setAnzeigeVisible(Boolean.TRUE);
gVarRout.setAnzeigeBackground(Color.BLUE);
gVarRout.anzeigeNum = 2;
gVarRout.setAnzeigeText("");
gVarRout.setAnzeigeVisible(Boolean.TRUE);
gVarRout.setAnzeigeBackground(Color.AQUA);
gVarRout.anzeigeNum = 3;
gVarRout.setAnzeigeText("Uhrzeit:");
gVarRout.setAnzeigeVisible(Boolean.TRUE);
gVarRout.setAnzeigeBackground(Color.BLUE);
gVarRout.knopfNum = 1;
gVarRout.setKnopfVisible(Boolean.TRUE);
gVarRout.knopfNum = 2;
gVarRout.setKnopfVisible(Boolean.TRUE);
gVarRout.einfeldNum = 1;
gVarRout.setEingabeVisible(Boolean.TRUE);
gVarRout.setEingabeEditable(Boolean.FALSE);
gVarRout.setEingabeBackground(Color.LIGHTGRAY);
gVarRout.einfeldNum = 2;
gVarRout.setEingabeVisible(Boolean.TRUE);
gVarRout.setEingabeEditable(Boolean.FALSE);
gVarRout.setEingabeBackground(Color.LIGHTGRAY);
gVarRout.setEingabeText("12:34:58");
gVarRout.einfeldInt = 0;
gVarRout.einfeldDouble = 0;
gVarRout.einfeldText = "";
gVarRout.einfeldDateTime = LocalDateTime.of(1700, 1, 1, 0, 0, 0);
gVarRout.einfeldForm = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
gVarRout.einfeldSDT = gVarRout.einfeldDateTime.format(gVarRout.einfeldForm);
gVarRout.einfeldType = 1;
gVarRout.KonvDateTime();
// Setzen Eingabe Variablen
gVarRout.einfeldNum = 1;
// gVarRout.setEingabeBackground(Color.WHITE);
gVarRout.einfeldText = "";
gVarRout.einfeldArt = 6;
gVarRout.einfeldAuto = 1;
gVarRout.einfeldKomma = 0;
gVarRout.einfeldMin = 8;
gVarRout.einfeldMax = 10;
gVarRout.einfeldZeich = 3;
gVarRout.einfeldAnzeige = 0;
gVarRout.eingabeSetzen();
}
@FXML
public static void main(String[] args)
{
launch();
}
}
Java:
package com.juelin.projekt8;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.geometry.Insets;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.CornerRadii;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.paint.Paint;
public class fensterController
{
@FXML
private Pane pane;
@FXML
private TextField eingabe1;
@FXML
private TextField eingabe2;
@FXML
private Label anzeige1;
@FXML
private Label anzeige2;
@FXML
private Label anzeige3;
@FXML
private Button knopf1;
@FXML
private Button knopf2;
public int anzeigeNum;
public int knopfNum;
public int einfeldInt; // Eingabe Integer
public double einfeldDouble; // Eingabe Double
public LocalDateTime einfeldDateTime; // Eingabe Datum
public DateTimeFormatter einfeldForm; // Formatiertes Datum und Uhrzeit
public String einfeldSDT; // Stringausgabe Datum und Uhrzeit
public int einfeldDD; // Tag
public int einfeldMO; // Monat
public int einfeldJJ; // Jahr
public int einfeldHH; // Stunde
public int einfeldMI; // Minute
public int einfeldSS; // Sekunde
public int einfeldType; // Konvertiertyp Datum und Uhrzeit Ausgabe einfeldSDT
// String = einfeldSDT
// Integer = einfeldJJ, einfeldMO, einfeldDD, einfeldHH, einfeldMI, einfeldSS
// 1 = String zu Integer deutsches Format
// 2 = Integer zu String englisches Format
// 3 = Datum aus Integer deutsches Format
// 4 = Uhrzeit aus Integer deutsches Format
// 5 = Datum String zu Integer
// 6 = Uhrzeit String zu Integer;
public String einfeldOrg; // Textfeld vor Eingabe
public String einfeldText; // Eingabe Text
public int einfeldLang; // Rückgabewert Länge der Eingabe
public int einfeldRet; // Rückgabewert Fehlercode
// 0 = kein Fehler
// 1 = Aufruf eingabeSeten mit einfeldNum = 0
// 2 = einfeldAnzeige ungültig
// 3 = Eingabe > einfeldMax
// 4 = einfeldMin > einfeldMax
// 5 = einfeldMax < 1
// 6 = Länge einfeldText > einfeldMax
// 7 = einfeldArt nicht zulässig
// 8 = Eingabewert in einfeldText nicht zulässig
// 9 = Übergabewert einfeldText nicht OK
// 10 = Datum nicht zulässig
// 11 = Uhrzeit nicht zulässig
// 12 = einfeldText zu viele Sonderzeichen
public int einfeldArt; // Eingabeart
// 1 = nummerisch ohne Komma ohne Vorzeichen
// 2 = nummerich ohne Komma mit Vorzeichen
// 3 = nummerisch mit Komma ohne Vorzeichen
// 4 = nummerisch mit Komma mit Vorzeichen
// 5 = Alphanummerisch
// 6 = Datum
// 7 = Telefonnummer
// 8 = Uhrzeit
public int einfeldNum; // Nummer des Eingabefeldes
public int einfeldMin; // minimale Länge Eingabe
public int einfeldMax; // maximale Länge Eingabe
public int einfeldKomma; // Anzahl nachkommastelloen
public int einfeldZeich; // Zeichenart
// 1 = nur Kleinbuchstaben
// 2 = nur Grossbuchstaben
// 3 = Gross- und Kleinbuchstaben
public int einfeldAnzeige; // eingabeText vorher anzeigen
// 0 = nein
// 1 = ja
public int einfeldAuto; // Automatischer Feldsprung
// 0 = nein
// 1 = ja
// 2 = damit beim Init des Feldes nicht gleich der ActionEvent ausgelösr wird
public int einfeldStell; // Eingabestelle
private String einfeldAlt; // Merker Text vor Eingabe Zeichen
private int einfeldLauf; // Funktionen in Eingabe ausführen
// 0 = nein
// 1 = ja
private int einfeldSonderAnz1; // Anzahl Sonderzeichen -
private int einfeldSonderAnz2; // Anzahl Sonderzeichen ,
private int einfeldSonderAnz3; // Anzahl Sonderzeichen .
private int einfeldSonderAnz4; // Anzahl Sonderzeichen :
private int einfeldSonderAnz5; // Anzahl Sonderzeichen /
private int einfeldLeer; // Merker anzeige2 löschen
// 0 = nein
// 1 = ja
@FXML
void B1Click(ActionEvent event)
{
if (knopf1.isVisible())
{
einfeldNum = 1;
setEingabeEditable(Boolean.FALSE);
setEingabeText("");
einfeldNum = 2;
setEingabeEditable(Boolean.FALSE);
einfeldNum = 1;
einfeldText = "";
einfeldArt = 6;
einfeldAuto = 1;
einfeldKomma = 0;
einfeldMin = 8;
einfeldMax = 10;
einfeldZeich = 3;
einfeldAnzeige = 0;
eingabeSetzen();
}
}
@FXML
void B2Click(ActionEvent event)
{
if (knopf2.isVisible())
{
System.exit(0);
}
}
@FXML
void E1Action(ActionEvent event)
{
int i;
int a;
int h1;
int h2;
int h3;
String s;
String t;
if (einfeldNum == 1)
{
if (einfeldRet > 0)
{
setEingabeEditable(Boolean.TRUE);
einfeldLauf = 1;
}
if (einfeldLauf == 1)
{
if (eingabe1.isEditable())
{
anzeigeNum = 2;
setAnzeigeText("");
s = getEingabeText();
i = s.length();
a = einfeldMin;
if (einfeldRet > 0)
{
i = einfeldMin;
}
if (i < einfeldMin)
{
if (einfeldRet == 0)
{
anzeigeNum = 2;
setAnzeigeText("Eingabe nicht lang genug, kein Eingabenende");
}
einfeldLeer = 0;
}
else
{
einfeldText = s;
if (einfeldRet == 0)
{
if (i > einfeldMax)
{
einfeldRet = 3;
}
}
if (einfeldRet == 0)
{
eingabePruef();
}
if (einfeldRet > 0)
{
setEingabeEditable(Boolean.FALSE);
einfeldLauf = 0;
einfeldLang = i;
s = FehlerAus();
if (einfeldRet == 8)
{
s += " <"+einfeldText+">";
}
anzeigeNum = 2;
setAnzeigeText(s);
}
else
{
if (einfeldArt == 1)
{
einfeldInt = Integer.valueOf(einfeldText);
}
if (einfeldArt == 2)
{
einfeldInt = Integer.valueOf(einfeldText);
}
if (einfeldArt == 3)
{
einfeldDouble = Double.parseDouble(einfeldText);
}
if (einfeldArt == 4)
{
einfeldDouble = Double.parseDouble(einfeldText);
}
if (einfeldArt == 6)
{
h1 = einfeldHH;
h2 = einfeldMI;
h3 = einfeldSS;
einfeldSDT = einfeldText;
einfeldType = 5;
KonvDateTime();
einfeldHH = 0;
einfeldMI = 0;
einfeldSS = 0;
einfeldType = 2;
KonvDateTime();
einfeldHH = h1;
einfeldMI = h2;
einfeldSS = h3;
s = einfeldSDT.substring(0, 10);
DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd");
try
{
LocalDate ld = LocalDate.parse(s, f);
t = ld.format(f);
if (!s.equals(t))
{
einfeldRet = 10;
}
}
catch (DateTimeParseException e)
{
einfeldRet = 10;
}
if (einfeldRet > 0)
{
s = FehlerAus();
if (einfeldRet == 8)
{
s += " <"+einfeldText+">";
}
anzeigeNum = 2;
setAnzeigeText(s);
}
else
{
einfeldDateTime = LocalDateTime.of(einfeldJJ, einfeldMO, einfeldDD, einfeldHH, einfeldMI, einfeldSS);
einfeldForm = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
einfeldSDT = einfeldDateTime.format(einfeldForm);
}
}
if (einfeldArt == 8)
{
h1 = einfeldJJ;
h2 = einfeldMO;
h3 = einfeldDD;
einfeldSDT = einfeldText;
einfeldType = 6;
KonvDateTime();
einfeldJJ = 2000;
einfeldMO = 1;
einfeldDD = 1;
einfeldType = 2;
KonvDateTime();
einfeldJJ = h1;
einfeldMO = h2;
einfeldDD = h3;
s = einfeldSDT.substring(0, 19);
DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
try
{
LocalDateTime ld = LocalDateTime.parse(s, f);
t = ld.format(f);
if (!s.equals(t))
{
einfeldRet = 11;
}
}
catch (DateTimeParseException e)
{
einfeldRet = 11;
}
if (einfeldRet > 0)
{
s = FehlerAus();
if (einfeldRet == 8)
{
s += " <"+einfeldText+">";
}
anzeigeNum = 2;
setAnzeigeText(s);
}
else
{
einfeldDateTime = LocalDateTime.of(einfeldJJ, einfeldMO, einfeldDD, einfeldHH, einfeldMI, einfeldSS);
einfeldForm = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
einfeldSDT = einfeldDateTime.format(einfeldForm);
}
}
setEingabeEditable(Boolean.FALSE);
if (einfeldRet == 0)
{
einfeldNum = 2;
einfeldText = "12:34:58";
einfeldArt = 8;
einfeldAuto = 2;
einfeldKomma = 0;
einfeldMin = 6;
einfeldMax = 8;
einfeldZeich = 3;
einfeldAnzeige = 1;
eingabeSetzen();
}
}
}
}
}
}
}
@FXML
void E2Action(ActionEvent event)
{
int i;
int a;
int h1;
int h2;
int h3;
String s;
String t;
if (einfeldNum == 2)
{
if (einfeldRet > 0)
{
setEingabeEditable(Boolean.TRUE);
einfeldLauf = 1;
}
if (einfeldLauf == 1)
{
if (eingabe2.isEditable())
{
anzeigeNum = 2;
setAnzeigeText("");
s = getEingabeText();
i = s.length();
a = einfeldMin;
if (einfeldRet > 0)
{
i = einfeldMin;
}
if (i < einfeldMin)
{
if (einfeldRet == 0)
{
anzeigeNum = 2;
setAnzeigeText("Eingabe nicht lang genug, kein Eingabenende");
}
einfeldLeer = 0;
}
else
{
einfeldText = s;
if (einfeldRet == 0)
{
if (i > einfeldMax)
{
einfeldRet = 3;
}
}
if (einfeldRet == 0)
{
eingabePruef();
}
if (einfeldRet > 0)
{
setEingabeEditable(Boolean.FALSE);
einfeldLauf = 0;
einfeldLang = i;
s = FehlerAus();
if (einfeldRet == 8)
{
s += " <"+einfeldText+">";
}
anzeigeNum = 2;
setAnzeigeText(s);
}
else
{
if (einfeldArt == 1)
{
einfeldInt = Integer.valueOf(einfeldText);
}
if (einfeldArt == 2)
{
einfeldInt = Integer.valueOf(einfeldText);
}
if (einfeldArt == 3)
{
einfeldDouble = Double.parseDouble(einfeldText);
}
if (einfeldArt == 4)
{
einfeldDouble = Double.parseDouble(einfeldText);
}
if (einfeldArt == 6)
{
h1 = einfeldHH;
h2 = einfeldMI;
h3 = einfeldSS;
einfeldSDT = einfeldText;
einfeldType = 5;
KonvDateTime();
einfeldHH = 0;
einfeldMI = 0;
einfeldSS = 0;
einfeldType = 2;
KonvDateTime();
einfeldHH = h1;
einfeldMI = h2;
einfeldSS = h3;
s = einfeldSDT.substring(0, 10);
DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd");
try
{
LocalDate ld = LocalDate.parse(s, f);
t = ld.format(f);
if (!s.equals(t))
{
einfeldRet = 10;
}
}
catch (DateTimeParseException e)
{
einfeldRet = 10;
}
if (einfeldRet > 0)
{
s = FehlerAus();
if (einfeldRet == 8)
{
s += " <"+einfeldText+">";
}
anzeigeNum = 2;
setAnzeigeText(s);
}
else
{
einfeldDateTime = LocalDateTime.of(einfeldJJ, einfeldMO, einfeldDD, einfeldHH, einfeldMI, einfeldSS);
einfeldForm = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
einfeldSDT = einfeldDateTime.format(einfeldForm);
}
}
if (einfeldArt == 8)
{
h1 = einfeldJJ;
h2 = einfeldMO;
h3 = einfeldDD;
einfeldSDT = einfeldText;
einfeldType = 6;
KonvDateTime();
einfeldJJ = 2000;
einfeldMO = 1;
einfeldDD = 1;
einfeldType = 2;
KonvDateTime();
einfeldJJ = h1;
einfeldMO = h2;
einfeldDD = h3;
s = einfeldSDT.substring(0, 19);
DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
try
{
LocalDateTime ld = LocalDateTime.parse(s, f);
t = ld.format(f);
if (!s.equals(t))
{
einfeldRet = 11;
}
}
catch (DateTimeParseException e)
{
einfeldRet = 11;
}
if (einfeldRet > 0)
{
s = FehlerAus();
if (einfeldRet == 8)
{
s += " <"+einfeldText+">";
}
anzeigeNum = 2;
setAnzeigeText(s);
}
else
{
einfeldDateTime = LocalDateTime.of(einfeldJJ, einfeldMO, einfeldDD, einfeldHH, einfeldMI, einfeldSS);
einfeldForm = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
einfeldSDT = einfeldDateTime.format(einfeldForm);
}
}
setEingabeEditable(Boolean.FALSE);
}
}
}
}
}
}
@FXML
void E1Typed(KeyEvent event)
{
int i;
String s;
String t;
int a;
int l;
int x;
Boolean r;
String b;
String c;
if (einfeldNum == 1)
{
if (einfeldLauf == 1)
{
if (eingabe1.isEditable())
{
if (einfeldLeer == 1)
{
anzeigeNum = 2;
setAnzeigeText("");
}
einfeldLeer = 1;
s = getEingabeText();
i = s.length();
t = "";
if (i > 0)
{
t = s.substring(i-1, i);
}
if (einfeldRet == 0)
{
einfeldSonderAnz1 = 0;
einfeldSonderAnz2 = 0;
einfeldSonderAnz3 = 0;
einfeldSonderAnz4 = 0;
einfeldSonderAnz5 = 0;
einfeldLeer = 1;
r = Boolean.FALSE;
einfeldText = s;
x = 7;
a = einfeldText.length();
if (einfeldArt == 1) // Integer
{
r = Boolean.TRUE;
x = 0;
if (a > 0)
{
c = "0123456789";
for (l=0; l<a; l++)
{
if (r)
{
b = einfeldText.substring(l, l+1);
r = Eingabegueltig(b, c, "", 0, l);
if (!r)
{
x = 8;
}
}
}
}
}
if (einfeldArt == 2) // integer mit Votzeichen
{
r = Boolean.TRUE;
x = 0;
if (a > 0)
{
c = "0123456789";
for (l=0; l<a; l++)
{
if (r)
{
b = einfeldText.substring(l, l+1);
r = Eingabegueltig(b, c, "-", 1, l);
if (!r)
{
x = 8;
}
}
}
if (einfeldSonderAnz1 > 1)
{
x = 12;
}
}
}
if (einfeldArt == 3) // double mit Komma
{
r = Boolean.TRUE;
x = 0;
if (a > 0)
{
c = "0123456789";
for (l=0; l<a; l++)
{
if (r)
{
b = einfeldText.substring(l, l+1);
if (einfeldKomma > 0)
{
r = Eingabegueltig(b, c, ",", 1, l);
}
else
{
r = Eingabegueltig(b, c, "", 0, l);
}
if (!r)
{
x = 8;
}
}
}
if (einfeldSonderAnz2 > 1)
{
x = 12;
}
}
}
if (einfeldArt == 4) // double mit Vorzeichen und Komma
{
r = Boolean.TRUE;
x = 0;
if (a > 0)
{
c = "0123456789";
for (l=0; l<a; l++)
{
if (r)
{
b = einfeldText.substring(l, l+1);
if (einfeldKomma > 0)
{
r = Eingabegueltig(b, c, "-,", 1, l);
}
else
{
r = Eingabegueltig(b, c, "-", 1, l);
}
if (!r)
{
x = 8;
}
}
}
if (einfeldSonderAnz1 > 1)
{
x = 12;
}
if (einfeldSonderAnz2 > 1)
{
x = 12;
}
}
}
if (einfeldArt == 5) // Alphanummerische Eingabe
{
r = Boolean.TRUE;
x = 0;
}
if (einfeldArt == 6) // Datum
{
r = Boolean.TRUE;
x = 0;
if (a > 0)
{
c = "0123456789";
for (l=0; l<a; l++)
{
if (r)
{
b = einfeldText.substring(l, l+1);
r = Eingabegueltig(b, c, ".", 2, l);
if (!r)
{
x = 8;
}
}
}
if (einfeldSonderAnz3 > 2)
{
x = 12;
}
}
}
if (einfeldArt == 7) // Telefonnummer
{
r = Boolean.TRUE;
x = 0;
if (a > 0)
{
c = "0123456789";
for (l=0; l<a; l++)
{
if (r)
{
b = einfeldText.substring(l, l+1);
r = Eingabegueltig(b, c, "/", 1, l);
if (!r)
{
x = 8;
}
}
}
if (einfeldSonderAnz5 > 1)
{
x = 12;
}
}
}
if (einfeldArt == 8) // Uhrzeit
{
r = Boolean.TRUE;
x = 0;
if (a > 0)
{
c = "0123456789";
for (l=0; l<a; l++)
{
if (r)
{
b = einfeldText.substring(l, l+1);
r = Eingabegueltig(b, c, ":", 2, l);
if (!r)
{
x = 8;
}
}
}
if (einfeldSonderAnz4 > 2)
{
x = 12;
}
}
}
if ( x == 8)
{
einfeldText = einfeldAlt;
s = einfeldText;
setEingabeText(einfeldText);
einfeldStell = einfeldText.length();
einfeldLang = einfeldText.length();
setEingabeCursor(einfeldStell);
x = 0;
}
if (x > 0)
{
einfeldRet = x;
eingabe1.fireEvent(new ActionEvent());
}
}
if (einfeldRet == 0)
{
einfeldAlt = s;
einfeldStell = i;
if (einfeldAuto == 1)
{
if (einfeldStell == einfeldMax)
{
eingabe1.fireEvent(new ActionEvent());
}
}
else
{
if (einfeldAuto == 2)
{
einfeldAuto = 1;
}
}
}
}
}
}
}
@FXML
void E2Typed(KeyEvent event)
{
int i;
String s;
String t;
int a;
int l;
int x;
Boolean r;
String b;
String c;
if (einfeldNum == 2)
{
if (einfeldLauf == 1)
{
if (eingabe2.isEditable())
{
if (einfeldLeer == 1)
{
anzeigeNum = 2;
setAnzeigeText("");
}
einfeldLeer = 1;
s = getEingabeText();
i = s.length();
t = "";
if (i > 0)
{
t = s.substring(i-1, i);
}
if (einfeldRet == 0)
{
einfeldSonderAnz1 = 0;
einfeldSonderAnz2 = 0;
einfeldSonderAnz3 = 0;
einfeldSonderAnz4 = 0;
einfeldSonderAnz5 = 0;
einfeldLeer = 1;
r = Boolean.FALSE;
einfeldText = s;
x = 7;
a = einfeldText.length();
if (einfeldArt == 1) // Integer
{
r = Boolean.TRUE;
x = 0;
if (a > 0)
{
c = "0123456789";
for (l=0; l<a; l++)
{
if (r)
{
b = einfeldText.substring(l, l+1);
r = Eingabegueltig(b, c, "", 0, l);
if (!r)
{
x = 8;
}
}
}
}
}
if (einfeldArt == 2) // integer mit Votzeichen
{
r = Boolean.TRUE;
x = 0;
if (a > 0)
{
c = "0123456789";
for (l=0; l<a; l++)
{
if (r)
{
b = einfeldText.substring(l, l+1);
r = Eingabegueltig(b, c, "-", 1, l);
if (!r)
{
x = 8;
}
}
}
if (einfeldSonderAnz1 > 1)
{
x = 12;
}
}
}
if (einfeldArt == 3) // double mit Komma
{
r = Boolean.TRUE;
x = 0;
if (a > 0)
{
c = "0123456789";
for (l=0; l<a; l++)
{
if (r)
{
b = einfeldText.substring(l, l+1);
if (einfeldKomma > 0)
{
r = Eingabegueltig(b, c, ",", 1, l);
}
else
{
r = Eingabegueltig(b, c, "", 0, l);
}
if (!r)
{
x = 8;
}
}
}
if (einfeldSonderAnz2 > 1)
{
x = 12;
}
}
}
if (einfeldArt == 4) // double mit Vorzeichen und Komma
{
r = Boolean.TRUE;
x = 0;
if (a > 0)
{
c = "0123456789";
for (l=0; l<a; l++)
{
if (r)
{
b = einfeldText.substring(l, l+1);
if (einfeldKomma > 0)
{
r = Eingabegueltig(b, c, "-,", 1, l);
}
else
{
r = Eingabegueltig(b, c, "-", 1, l);
}
if (!r)
{
x = 8;
}
}
}
if (einfeldSonderAnz1 > 1)
{
x = 12;
}
if (einfeldSonderAnz2 > 1)
{
x = 12;
}
}
}
if (einfeldArt == 5) // Alphanummerische Eingabe
{
r = Boolean.TRUE;
x = 0;
}
if (einfeldArt == 6) // Datum
{
r = Boolean.TRUE;
x = 0;
if (a > 0)
{
c = "0123456789";
for (l=0; l<a; l++)
{
if (r)
{
b = einfeldText.substring(l, l+1);
r = Eingabegueltig(b, c, ".", 2, l);
if (!r)
{
x = 8;
}
}
}
if (einfeldSonderAnz3 > 2)
{
x = 12;
}
}
}
if (einfeldArt == 7) // Telefonnummer
{
r = Boolean.TRUE;
x = 0;
if (a > 0)
{
c = "0123456789";
for (l=0; l<a; l++)
{
if (r)
{
b = einfeldText.substring(l, l+1);
r = Eingabegueltig(b, c, "/", 1, l);
if (!r)
{
x = 8;
}
}
}
if (einfeldSonderAnz5 > 1)
{
x = 12;
}
}
}
if (einfeldArt == 8) // Uhrzeit
{
r = Boolean.TRUE;
x = 0;
if (a > 0)
{
c = "0123456789";
for (l=0; l<a; l++)
{
if (r)
{
b = einfeldText.substring(l, l+1);
r = Eingabegueltig(b, c, ":", 2, l);
if (!r)
{
x = 8;
}
}
}
if (einfeldSonderAnz4 > 2)
{
x = 12;
}
}
}
if ( x == 8)
{
einfeldText = einfeldAlt;
s = einfeldText;
setEingabeText(einfeldText);
einfeldStell = einfeldText.length();
einfeldLang = einfeldText.length();
setEingabeCursor(einfeldStell);
x = 0;
}
if (x > 0)
{
einfeldRet = x;
eingabe2.fireEvent(new ActionEvent());
}
}
if (einfeldRet == 0)
{
einfeldAlt = s;
einfeldStell = i;
if (einfeldAuto == 1)
{
if (einfeldStell == einfeldMax)
{
eingabe2.fireEvent(new ActionEvent());
}
}
else
{
if (einfeldAuto == 2)
{
einfeldAuto = 1;
}
}
}
}
}
}
}
@FXML
void setKnopfVisible(Boolean wert)
{
if (knopfNum == 1)
{
knopf1.setVisible(wert);
}
if (knopfNum == 2)
{
knopf2.setVisible(wert);
}
}
@FXML
void setAnzeigeVisible(Boolean wert)
{
if (anzeigeNum == 1)
{
anzeige1.setVisible(wert);
}
if (anzeigeNum == 2)
{
anzeige2.setVisible(wert);
}
if (anzeigeNum == 3)
{
anzeige3.setVisible(wert);
}
}
@FXML
void setEingabeVisible(Boolean wert)
{
if (einfeldNum == 1)
{
eingabe1.setVisible(wert);
}
if (einfeldNum == 2)
{
eingabe2.setVisible(wert);
}
}
@FXML
void setAnzeigeBackground(Paint wert)
{
if (anzeigeNum == 1)
{
anzeige1.setBackground(new Background(new BackgroundFill(wert, CornerRadii.EMPTY, Insets.EMPTY)));
}
if (anzeigeNum == 2)
{
anzeige2.setBackground(new Background(new BackgroundFill(wert, CornerRadii.EMPTY, Insets.EMPTY)));
}
if (anzeigeNum == 3)
{
anzeige3.setBackground(new Background(new BackgroundFill(wert, CornerRadii.EMPTY, Insets.EMPTY)));
}
}
@FXML
void setEingabeBackground(Paint wert)
{
if (einfeldNum == 1)
{
eingabe1.setBackground(new Background(new BackgroundFill(wert, CornerRadii.EMPTY, Insets.EMPTY)));
}
if (einfeldNum == 2)
{
eingabe2.setBackground(new Background(new BackgroundFill(wert, CornerRadii.EMPTY, Insets.EMPTY)));
}
}
@FXML
void setEingabeEditable(Boolean wert)
{
String s;
int l;
if (einfeldNum == 1)
{
eingabe1.setEditable(wert);
if (wert)
{
setEingabeBackground(Color.WHITE);
eingabe1.requestFocus();
s = getEingabeText();
l = s.length();
eingabe1.positionCaret(l);
}
else
{
setEingabeBackground(Color.LIGHTGRAY);
s = getEingabeText();
l = s.length();
eingabe1.positionCaret(l);
einfeldLauf = 0;
}
}
if (einfeldNum == 2)
{
eingabe2.setEditable(wert);
if (wert)
{
setEingabeBackground(Color.WHITE);
eingabe2.requestFocus();
s = getEingabeText();
l = s.length();
eingabe2.positionCaret(l);
}
else
{
setEingabeBackground(Color.LIGHTGRAY);
s = getEingabeText();
l = s.length();
eingabe2.positionCaret(l);
einfeldLauf = 0;
}
}
}
@FXML
void setEingabeFocus()
{
if (einfeldNum == 1)
{
eingabe1.requestFocus();
}
if (einfeldNum == 2)
{
eingabe2.requestFocus();
}
}
@FXML
void setEingabeCursor(int wert)
{
if (einfeldNum == 1)
{
eingabe1.positionCaret(wert);
}
if (einfeldNum == 2)
{
eingabe2.positionCaret(wert);
}
}
@FXML
String getEingabeText()
{
String s = "";
if (einfeldNum == 1)
{
s = eingabe1.getText();
}
if (einfeldNum == 2)
{
s = eingabe2.getText();
}
return s;
}
@FXML
void setEingabeText(String wert)
{
if (einfeldNum == 1)
{
eingabe1.setText(wert);
}
if (einfeldNum == 2)
{
eingabe2.setText(wert);
}
}
@FXML
void setAnzeigeText(String wert)
{
if (anzeigeNum == 1)
{
anzeige1.setText(wert);
}
if (anzeigeNum == 2)
{
anzeige2.setText(wert);
}
if (anzeigeNum == 3)
{
anzeige3.setText(wert);
}
}
@FXML
void eingabeSetzen()
{
int i = 0;
String s;
einfeldLauf = 0;
einfeldStell = 0;
einfeldLang = 0;
einfeldRet = 1;
einfeldRet = 0;
if (einfeldArt < 1)
{
einfeldRet = 7;
}
if (einfeldArt > 8)
{
einfeldRet = 7;
}
if (einfeldMax < 1)
{
einfeldRet = 5;
}
if (einfeldMin > einfeldMax)
{
einfeldRet = 4;
}
if (einfeldMin < 0)
{
einfeldMin = 0;
}
if (einfeldAnzeige < 0 || einfeldAnzeige > 1)
{
einfeldRet = 2;
}
i = einfeldText.length();
if (i > einfeldMax && einfeldAnzeige == 1)
{
einfeldRet = 6;
}
if (einfeldRet == 0)
{
if (einfeldArt == 1 || einfeldArt == 2)
{
einfeldText = String.valueOf(einfeldInt);
}
if (einfeldArt == 3 || einfeldArt == 4)
{
einfeldText = String.valueOf(einfeldDouble);
tPunktKomma();
}
if (einfeldArt == 6 && einfeldAnzeige == 1)
{
if (i < einfeldMin)
{
einfeldRet = 9;
}
}
if (einfeldArt == 8 && einfeldAnzeige == 1)
{
if (i < einfeldMin)
{
einfeldRet = 9;
}
}
if (einfeldNum == 1)
{
if (einfeldRet == 0)
{
eingabePruef();
}
if (einfeldRet == 0)
{
einfeldOrg = einfeldText;
einfeldStell = i;
einfeldLang = i;
setEingabeEditable(Boolean.TRUE);
setEingabeText("");
if (einfeldAnzeige == 1)
{
setEingabeText(einfeldText);
}
setEingabeCursor(i);
einfeldAlt = einfeldText;
einfeldLauf = 1;
}
else
{
s = FehlerAus();
eingabe1.fireEvent(new ActionEvent());
}
}
if (einfeldNum == 2)
{
if (einfeldRet == 0)
{
eingabePruef();
}
if (einfeldRet == 0)
{
einfeldOrg = einfeldText;
einfeldStell = i;
einfeldLang = i;
setEingabeEditable(Boolean.TRUE);
setEingabeText("");
if (einfeldAnzeige == 1)
{
setEingabeText(einfeldText);
}
setEingabeCursor(i);
einfeldAlt = einfeldText;
einfeldLauf = 1;
}
else
{
s = FehlerAus();
eingabe2.fireEvent(new ActionEvent());
}
}
}
}
@FXML
void eingabePruef()
{
int i;
int l;
Boolean r;
String s;
String t;
einfeldSonderAnz1 = 0;
einfeldSonderAnz2 = 0;
einfeldSonderAnz3 = 0;
einfeldSonderAnz4 = 0;
einfeldSonderAnz5 = 0;
einfeldLeer = 1;
r = Boolean.FALSE;
einfeldRet = 7;
i = einfeldText.length();
if (einfeldArt == 1) // Integer
{
r = Boolean.TRUE;
einfeldRet = 0;
if (i > 0)
{
t = "0123456789";
for (l=0; l<i; l++)
{
if (r)
{
s = einfeldText.substring(l, l+1);
r = Eingabegueltig(s, t, "", 0, l);
if (!r)
{
einfeldRet = 8;
}
}
}
}
}
if (einfeldArt == 2) // integer mit Votzeichen
{
r = Boolean.TRUE;
einfeldRet = 0;
if (i > 0)
{
t = "0123456789";
for (l=0; l<i; l++)
{
if (r)
{
s = einfeldText.substring(l, l+1);
r = Eingabegueltig(s, t, "-", 1, l);
if (!r)
{
einfeldRet = 8;
}
}
}
if (einfeldSonderAnz1 > 1)
{
einfeldRet = 12;
}
}
}
if (einfeldArt == 3) // double mit Komma
{
r = Boolean.TRUE;
einfeldRet = 0;
if (i > 0)
{
t = "0123456789";
for (l=0; l<i; l++)
{
if (r)
{
s = einfeldText.substring(l, l+1);
if (einfeldKomma > 0)
{
r = Eingabegueltig(s, t, ",", 1, l);
}
else
{
r = Eingabegueltig(s, t, "", 0, l);
}
if (!r)
{
einfeldRet = 8;
}
}
}
if (einfeldSonderAnz2 > 1)
{
einfeldRet = 12;
}
}
}
if (einfeldArt == 4) // double mit Vorzeichen und Komma
{
r = Boolean.TRUE;
einfeldRet = 0;
if (i > 0)
{
t = "0123456789";
for (l=0; l<i; l++)
{
if (r)
{
s = einfeldText.substring(l, l+1);
if (einfeldKomma > 0)
{
r = Eingabegueltig(s, t, "-,", 1, l);
}
else
{
r = Eingabegueltig(s, t, "-", 1, l);
}
if (!r)
{
einfeldRet = 8;
}
}
}
if (einfeldSonderAnz1 > 1)
{
einfeldRet = 12;
}
if (einfeldSonderAnz2 > 1)
{
einfeldRet = 12;
}
}
}
if (einfeldArt == 5) // Alphanummerische Eingabe
{
r = Boolean.TRUE;
einfeldRet = 0;
}
if (einfeldArt == 6) // Datum
{
r = Boolean.TRUE;
einfeldRet = 0;
if (i > 0)
{
t = "0123456789";
for (l=0; l<i; l++)
{
if (r)
{
s = einfeldText.substring(l, l+1);
r = Eingabegueltig(s, t, ".", 2, l);
if (!r)
{
einfeldRet = 8;
}
}
}
if (einfeldSonderAnz3 != 2)
{
einfeldRet = 12;
}
}
}
if (einfeldArt == 7) // Telefonnummer
{
r = Boolean.TRUE;
einfeldRet = 0;
if (i > 0)
{
t = "0123456789";
for (l=0; l<i; l++)
{
if (r)
{
s = einfeldText.substring(l, l+1);
r = Eingabegueltig(s, t, "/", 1, l);
if (!r)
{
einfeldRet = 8;
}
}
}
if (einfeldSonderAnz5 > 1)
{
einfeldRet = 12;
}
}
}
if (einfeldArt == 8) // Uhrzeit
{
r = Boolean.TRUE;
einfeldRet = 0;
if (i > 0)
{
t = "0123456789";
for (l=0; l<i; l++)
{
if (r)
{
s = einfeldText.substring(l, l+1);
r = Eingabegueltig(s, t, ":", 2, l);
if (!r)
{
einfeldRet = 8;
}
}
}
if (einfeldSonderAnz4 != 2)
{
einfeldRet = 12;
}
}
}
if (einfeldRet > 0)
{
eingabe1.fireEvent(new ActionEvent());
}
}
@FXML
Boolean Eingabegueltig(String wert, String zulas, String sonder, int sanz, int tposi)
{
int i;
int l;
int z;
int b;
String s;
String q;
Boolean w = Boolean.TRUE;
i = sonder.length();
l = wert.length();
if (l > 0)
{
l = zulas.length();
if (l > 0)
{
w = Boolean.FALSE;
for (z=0; z < l; z++)
{
s = zulas.substring(z, z+1);
if (s.equals(wert))
{
w = Boolean.TRUE;
}
}
if (!w)
{
if (i > 0)
{
for (b=0; b < i; b++)
{
q = sonder.substring(b, b+1);
if (q.equals( wert))
{
w = Boolean.TRUE;
}
}
}
}
}
else
{
w = Boolean.FALSE;
}
}
else
{
w = Boolean.FALSE;
}
if (w)
{
if (i > 0)
{
for (z=0; z < i; z++)
{
s = sonder.substring(z, z+1);
if (s.equals( wert))
{
if (wert.equals("-"))
{
einfeldSonderAnz1++;
if (tposi > 0)
{
w = Boolean.FALSE;
}
}
if (wert.equals(","))
{
einfeldSonderAnz2++;
}
if (wert.equals("."))
{
einfeldSonderAnz3++;
}
if (wert.equals(":"))
{
einfeldSonderAnz4++;
}
if (wert.equals("/"))
{
einfeldSonderAnz5++;
}
}
}
if (w)
{
if (einfeldSonderAnz1 > sanz)
{
w = Boolean.FALSE;
}
if (einfeldSonderAnz2 > sanz)
{
w = Boolean.FALSE;
}
if (einfeldSonderAnz3 > sanz)
{
w = Boolean.FALSE;
}
if (einfeldSonderAnz4 > sanz)
{
w = Boolean.FALSE;
}
if (einfeldSonderAnz5 > sanz)
{
w = Boolean.FALSE;
}
}
}
}
return w;
}
@FXML
void tKommaPunkt()
{
int i;
int l;
String s;
String t;
l = einfeldText.length();
if (l > 0)
{
t = "";
for (i=0; i < l; i++)
{
s = einfeldText.substring(i, i+1);
if (s.equals(","))
{
s = ".";
}
t += s;
}
einfeldText = t;
}
}
@FXML
void tPunktKomma()
{
int i;
int l;
String s;
String t;
l = einfeldText.length();
if (l > 0)
{
t = "";
for (i=0; i < l; i++)
{
s = einfeldText.substring(i, i+1);
if (s.equals("."))
{
s = ",";
}
t += s;
}
einfeldText = t;
}
}
@FXML
String FehlerAus()
{
String s = "";
if (einfeldRet == 1)
{
s = "Aufruf eingabeSeten mit einfeldNum = 0";
}
if (einfeldRet == 2)
{
s = "einfeldAnzeige ungültig";
}
if (einfeldRet == 3)
{
s = "Eingabe > einfeldMax";
}
if (einfeldRet == 4)
{
s = "einfeldMin > einfeldMax";
}
if (einfeldRet == 5)
{
s = "einfeldMax < 1";
}
if (einfeldRet == 6)
{
s = "Länge einfeldText > einfeldMax";
}
if (einfeldRet == 7)
{
s = "einfeldArt nicht zulässig";
}
if (einfeldRet == 8)
{
s = "Eingabewert in einfeldText nicht zulässig";
}
if (einfeldRet == 9)
{
s = "Übergabewert einfeldText nicht OK";
}
if (einfeldRet == 10)
{
s = "Datum nicht zulässig";
}
if (einfeldRet == 11)
{
s = "Uhrzeit nicht zulässig";
}
if (einfeldRet == 12)
{
s = "zu viele Sonderzeichen";
}
return s;
}
@FXML
void KonvDateTime()
{
int i;
int l;
int a;
String s;
String t;
if (einfeldType == 1)
{
String jj = "";
String mo = "";
String dd = "";
String hh = "";
String mi = "";
String ss = "";
i = einfeldSDT.length();
einfeldDD = 0;
einfeldMO = 0;
einfeldJJ = 0;
einfeldHH = 0;
einfeldMI = 0;
einfeldSS = 0;
if (i == 19)
{
for (l=0; l < i; l++)
{
s = einfeldSDT.substring(l, l+1);
if (l < 2)
{
dd += s;
}
if (l > 2 && l < 5)
{
mo += s;
}
if (l > 5 && l < 10)
{
jj += s;
}
if (l > 10 && l < 13)
{
hh += s;
}
if (l > 13 && l < 16)
{
mi += s;
}
if (l > 16)
{
ss += s;
}
}
einfeldJJ = Integer.valueOf(jj);
einfeldMO = Integer.valueOf(mo);
einfeldDD = Integer.valueOf(dd);
einfeldHH = Integer.valueOf(hh);
einfeldMI = Integer.valueOf(mi);
einfeldSS = Integer.valueOf(ss);
}
}
if (einfeldType == 2)
{
einfeldSDT = Integer.toString(einfeldJJ);
t = Integer.toString(einfeldMO);
i = t.length();
if (i == 1)
{
t = "0"+t;
}
einfeldSDT += "-"+t;
t = Integer.toString(einfeldDD);
i = t.length();
if (i == 1)
{
t = "0"+t;
}
einfeldSDT += "-"+t;
t = Integer.toString(einfeldHH);
i = t.length();
if (i == 1)
{
t = "0"+t;
}
einfeldSDT += " "+t;
t = Integer.toString(einfeldMI);
i = t.length();
if (i == 1)
{
t = "0"+t;
}
einfeldSDT += ":"+t;
t = Integer.toString(einfeldSS);
i = t.length();
if (i == 1)
{
t = "0"+t;
}
einfeldSDT += ":"+t;
}
if (einfeldType == 3)
{
einfeldSDT = "";
if (einfeldDD > 0 && einfeldDD < 32)
{
if (einfeldMO > 0 && einfeldMO < 13)
{
if (einfeldJJ > 1699)
{
einfeldSDT = Integer.toString(einfeldDD);
einfeldSDT += "."+Integer.toString(einfeldMO);
einfeldSDT += "."+Integer.toString(einfeldJJ);
}
}
}
}
if (einfeldType == 4)
{
einfeldSDT = "";
if (einfeldHH < 24)
{
if (einfeldMI < 60)
{
if (einfeldSS < 60)
{
einfeldSDT = Integer.toString(einfeldHH);
einfeldSDT += ":"+Integer.toString(einfeldMI);
einfeldSDT += ":"+Integer.toString(einfeldSS);
}
}
}
}
if (einfeldType == 5)
{
String jj = "";
String mo = "";
String dd = "";
i = einfeldSDT.length();
einfeldDD = 0;
einfeldMO = 0;
einfeldJJ = 0;
if (i > 7)
{
a = 1;
for (l=0; l < i; l++)
{
s = einfeldSDT.substring(l, l+1);
if (s.equals("."))
{
a++;
}
else
{
if (a == 1)
{
dd += s;
}
if (a == 2)
{
mo += s;
}
if (a == 3)
{
jj += s;
}
}
}
einfeldJJ = Integer.valueOf(jj);
einfeldMO = Integer.valueOf(mo);
einfeldDD = Integer.valueOf(dd);
}
}
if (einfeldType == 6)
{
String hh = "";
String mi = "";
String ss = "";
i = einfeldSDT.length();
einfeldHH = 0;
einfeldMI = 0;
einfeldSS = 0;
if (i > 5)
{
a = 1;
for (l=0; l < i; l++)
{
s = einfeldSDT.substring(l, l+1);
if (s.equals(":"))
{
a++;
}
else
{
if (a == 1)
{
hh += s;
}
if (a == 2)
{
mi += s;
}
if (a == 3)
{
ss += s;
}
}
}
einfeldHH = Integer.valueOf(hh);
einfeldMI = Integer.valueOf(mi);
einfeldSS = Integer.valueOf(ss);
}
}
}
}