Hallo,
ich habe im Scenebuilder ein Pane mit Label, TextField und Button erstellt.
Die FXML-Datei ist im Anhang (fenster.zip).
Das Programm läuft auch wunderbar.
Nun programmiere ich weiter und zu diesem Zweck muss ich im Event E1Typed (das ist Event: on Key Typed)
den Event E1Action auslösen (das ist on Action). (alles Events im TextField).
Kann mir da jemand helfen?
Danke und Gruß
Jürgen
ich habe im Scenebuilder ein Pane mit Label, TextField und Button erstellt.
Die FXML-Datei ist im Anhang (fenster.zip).
Das Programm läuft auch wunderbar.
Nun programmiere ich weiter und zu diesem Zweck muss ich im Event E1Typed (das ist Event: on Key Typed)
den Event E1Action auslösen (das ist on Action). (alles Events im TextField).
Java:
// File fensterController.java
package com.juelin.projekt8;
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 Label anzeige1;
@FXML
private Button knopf1;
public int anzeigeNum;
public int knopfNum;
public String einfeldText; // Eingabe Text
public int einfeldLang; // Länge der Eingabe
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 einfeldAuto; // Automatischer Feldsprung
// 0 = nein
// 1 = ja
public int einfeldStell; // Eingabestelle (vorher immer 0)
private String einfeldAlt; // Merker Text vor Eingabe Zeichen
private int einfeldLauf; // Funktionen in Eingabe ausführen
// 0 = nein
// 1 = ja
private int einfeldAnzSonder; // Anzahl Sonderzeichen
private String einfeldSonder; // Sonderzeichen
.........
@FXML
void E1Action(ActionEvent event)
{
int i;
String s;
if (einfeldNum == 1)
{
if (einfeldLauf == 1)
{
if (eingabe1.isEditable())
{
s = eingabe1.getText();
i = s.length();
System.out.println("Edit 1 Enter <"+s+"> Lang = "+Integer.toString(i));
einfeldLauf = 0;
}
}
}
}
@FXML
void E1Typed(KeyEvent event)
{
int i;
String s;
String t;
if (einfeldNum == 1)
{
if (einfeldLauf == 1)
{
if (eingabe1.isEditable())
{
s = eingabe1.getText();
i = s.length();
t = "";
if (i > 0)
{
t = s.substring(i-1, i);
System.out.println("Alt <"+einfeldAlt+"> neu <"+s+"> Lang = "+Integer.toString(i)+" Substring <"+t+">");
}
einfeldAlt = s;
einfeldStell = i;
if (einfeldStell == einfeldLang || einfeldStell == einfeldMax)
{
// Hier soll der Event E1Action(ActionEvent event) ausgelöst werden
}
}
}
}
}
Kann mir da jemand helfen?
Danke und Gruß
Jürgen