JavaFX Textfeld nur Zahlen und nur von 5 bis 30

nook87

Mitglied
Hallo ich bin noch programmier anfänger und ich habe eine Frage ich habe eine GUI programmiert und möchte gerne die Textfelder so programmieren das nur Zahlen und nur Zahlen von 5 - 30 eingegeben werden können um dem User bei der einstellung der FPS nur eben diese möglichkeit zu geben.

Sowie eine überprüfung das im Feld Email adresse auch eine email adresse eingegeben wurde also über @ und . überprüfen dürfte schon reichen.

Java:
Label lblfps = new Label("FPS :");
		final TextField txtfps = new TextField();
		HBox hbfps = new HBox();
		hbfps.getChildren().addAll(lblfps,txtfps);
		hbfps.setSpacing(10);

Label lblmail = new Label("E-Mail Adresse :");
		final TextField txtmail = new TextField();
		HBox hbmail = new HBox();
		hbmail.getChildren().addAll(lblmail,txtmail);
		hbmail.setSpacing(10);

Vielen dank im Vorraus
 

nook87

Mitglied
Hier noch der komplette code

Java:
public class JavaFXMenu extends Application{
	
	public static void main(String[] args) {
		
	    launch(args);
	}

	public void start(final Stage primaryStage) {
	
		// primarystage erstellen und formatieren => FensterElement
		primaryStage.setTitle("Java FX Menue Test");
		primaryStage.setHeight(400);
		primaryStage.setWidth(700);
		// Gruppe erstellen - Der Behälter der Alle Steuerelement aufnimmt
		Group root = new Group();								 
		// Layouttabelle zum positionieren der Elemente
		GridPane Layouttab = new GridPane();
		Layouttab.setMinHeight(400);
		Layouttab.setMinWidth(700);
		Layouttab.setHgap(10);
		Layouttab.setVgap(10);
		Layouttab.setMaxHeight(10);
		Layouttab.setMaxWidth(10);
		Layouttab.prefWidthProperty().bind(primaryStage.widthProperty());
		//Die Anzeigefläche die das Behälterelement aufnimmt - also die Gruppe an Elementen 
		Scene Anzeigefl = new Scene(root, 400,700,Color.ALICEBLUE); 
		//Menu - Leiste erstellen
		MenuBar mleiste = new MenuBar(); 
		//Das Menü das in die Leiste soll
		Menu menu1 = new Menu("Menu");
		//Menüpunkt mit Eventhändler zum Schliessen des Programms
		MenuItem menuItem3 = new MenuItem("Exit");
		menuItem3.setOnAction(new EventHandler<ActionEvent>() {
			public void handle(ActionEvent e) {
				System.exit(0);
			}
    	});
		
		//Mediaplayer zum abspielen des Streams ===== >>>> 
		//Media Streamplayer = new Media("");
		//MediaPlayer medPlay = new MediaPlayer(Streamplayer);
		//medPlay.setAutoPlay(false);
		//MediaView mediaView = new MediaView(medPlay);
		//HBox hbmed = new HBox();
		//hbmed.getChildren().addAll(btn1,mediaView);
		//hbmed.setSpacing(10);
		// HBox enthält die Elemente label zur beschriftung Speicherort und das Textfeld dazu
				final TextField txtsave = new TextField();		
				Label lblsave = new Label("Speicherort :");
				final HBox hbsave = new HBox();
				hbsave.getChildren().addAll(lblsave,txtsave);
				hbsave.setSpacing(10);
		//Speichern Knopf über Durchsuchen Speichern Dialog öffnet sich
		Button btnsave = new Button();
		btnsave.setLayoutX(200);
		btnsave.setLayoutY(80);
		btnsave.setText("Durchsuchen");
		btnsave.setOnAction(new EventHandler<ActionEvent>() {
			public void handle(ActionEvent event) {
				String StrSpeicherpfad =" ";
				FileChooser fileChooser = new FileChooser();
				fileChooser.setTitle("Save Stream");
				File file = fileChooser.showSaveDialog(primaryStage);
				StrSpeicherpfad = file.getAbsolutePath();
				txtsave.setText(StrSpeicherpfad);
				///////////////////////////////// Hier Aufruf der Speichern Klasse über Dialogfenster - oben öffnen Dialogfenster ////////////////////////
			}
		});
		//Das Menü nimmt die menüpunkte auf
		menu1.getItems().add(menuItem3); 
		//Die Menüleiste nimmt das Menü auf
		mleiste.getMenus().add(menu1); 
		//Die Menüleiste wird an die Fensterbreite angepasst
		mleiste.prefWidthProperty().bind(primaryStage.widthProperty());
		// HBox enthält die Elemente label zur beschriftung Bitrate und das Textfeld dazu
		Label lblrating = new Label("Bitrate :");
		final TextField txtrating = new TextField();
		HBox hbrating = new HBox();
		hbrating.getChildren().addAll(lblrating,txtrating);
		hbrating.setSpacing(10);
		// HBox enthält die Elemente label zur beschriftung FPS und das Textfeld dazu
		Label lblfps = new Label("FPS :");
		final TextField txtfps = new TextField();
		HBox hbfps = new HBox();
		hbfps.getChildren().addAll(lblfps,txtfps);
		hbfps.setSpacing(10);
		// HBox enthält die Elemente label zur beschriftung Aufnahmedauer und das Textfeld dazu
		Label lblrec = new Label("Aufnahmedauer :");
		final TextField txtrec = new TextField();
		HBox hbrec = new HBox();
		hbrec.getChildren().addAll(lblrec,txtrec);
		hbrec.setSpacing(10);
		// HBox enthält die Elemente label zur beschriftung E-MailAdresse und das Textfeld dazu
		Label lblmail = new Label("E-Mail Adresse :");
		final TextField txtmail = new TextField();
		HBox hbmail = new HBox();
		hbmail.getChildren().addAll(lblmail,txtmail);
		hbmail.setSpacing(10);
		// HBox enthält die Elemente label zur beschriftung Passwort und das Textfeld dazu
		Label lblpass = new Label("Passwort :");
		final TextField txtpass = new TextField();
		HBox hbpass = new HBox();
		hbpass.getChildren().addAll(lblpass, txtpass);
		hbmail.setSpacing(10);
		//Knopf zum übernehmen der gesamten einstellungen 
				Button btnaccept = new Button();
				btnaccept.setLayoutX(200);
				btnaccept.setLayoutY(80);
				btnaccept.setText("Einstellungen übernehmen");
				btnaccept.setOnAction(new EventHandler<ActionEvent>(){
						public void handle(ActionEvent event) {
							// Hier Klassenaufruf für Einstellungen übernehmen ===>>> Auslesen allerfelder+übergabe Start
							try {
								JavaFXSchreiber schreibjetzt = new JavaFXSchreiber("START",txtsave.getText(),txtrating.getText(),txtfps.getText(),txtrec.getText(),txtmail.getText(),txtpass.getText());
							} catch (IOException e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
							}
						}
				});
				// btn1 - der Startknopf - an dem das Unheil seinen Lauf nimmt
				Button btn1 = new Button();
				btn1.setLayoutX(100);
				btn1.setLayoutY(80);
				btn1.setText("START");
				btn1.setOnAction(new EventHandler<ActionEvent>()  {
					public void handle(ActionEvent event) {
						//////////////////////////// Hier Aufruf der START Klasse zum starten des Streams ///////////////////////////////////////
						String stru = txtmail.getText();
						String strpw = txtpass.getText();
						try {
						JavaFXmailer KamMail = new JavaFXmailer(stru,strpw);
						} catch (Exception e){
					
						}
				}
				});
		// Die Gruppe root nimmt die Menüleiste auf
		//root.getChildren().add(mleiste);  ====  >>>>>>>>>>>>>>>>>>>>> geopfert wg. Formatierung
		// Die Gruppe root nimmt zusätzlich die Layouttabelle auf - Wichtig die Reihenfolge beachten
		root.getChildren().add(Layouttab);
		//Ab hier nimmt die Layouttabelle die einzelnen Elemente auf und positioniert sie über X,Y koordinaten
		Layouttab.add(btn1,0,3); // ===== >>>>> Rausnehmen wenn Media Player bereit
		//Layouttab.add(hbmed,0,3); ==== >>>> Einfügen wenn Media Player bereit
		Layouttab.add(hbsave,0,6);
		Layouttab.add(btnsave, 1, 6);
		//Layouttab.add(mleiste, 0, 0);  ========= >>>>>>>>>>>>  geopfert wg Formatierung
		Layouttab.add(hbrating, 0, 4);
		Layouttab.add(hbfps, 0, 5);
		Layouttab.add(hbrec, 0, 7);
		Layouttab.add(hbmail, 0, 8);
		Layouttab.add(hbpass,0,9);
		Layouttab.add(btnaccept,0,10);
		//Ein-/Ausschalten der Linien der Gridpane
		Layouttab.setGridLinesVisible(false);
		//die primarystage bekommt die anzeigefläche zugewiesen mit allen Elementen die zuvor aufgenommen wurden
		primaryStage.setScene(Anzeigefl);
		//Fenster anzeigen
		primaryStage.show();
		
	}
	
	 

}
 

Joose

Top Contributor
Du kannst dem Textfield einen Listener hinzufügen. Dieser reagiert auf jeden Tastendruck wenn das Textfield ausgewählt wurde. Überprüfe die Eingabe auf Gültigkeit fertig
 

nook87

Mitglied
Hallo und danke leider habe ich wirklich bisher noch nicht so die große ahnung von java und javafx wie würde der befehl in meinem code aussehen und wo wird er plaziert?
 

Machareder

Bekanntes Mitglied
warum so kompliziert? lass den user einfach seine zahlen eingeben -> dann muss er auf einem button klicken. sobald der button geklickt wurde überprüfst du die eingabe auf richtigkeit, falls richtig -> neues fenster "glückwunsch war richtig", -> falls falsch "Leider liegt ihre zahl nicht zwischen 5-30!".
 

nook87

Mitglied
also ich habe jetzt eine neue Klasse angelegt mit dem Code

Java:
package neueGui;


	import javafx.scene.control.TextField;
	 
	public class txtfps extends TextField 
	{
	    
	    @Override public void replaceText(int start, int end, String text) {
	           if (text.matches("[0-9]") || text == "") {
	               super.replaceText(start, end, text);
	           }
	       }
	     
	       @Override public void replaceSelection(String text) {
	           if (text.matches("[0-9]") || text == "") {
	               super.replaceSelection(text);
	           }
	       }
	 
	}

Wie kann ich diesen in der main aufrufen? und ist dieser überhaupt richtig?
 
Zuletzt bearbeitet:

Joose

Top Contributor
Wie kann ich diesen in der main aufrufen? und ist dieser überhaupt richtig?

So wie du in der main-Methode im Anfangspost dein TextField verwendest, kannst du nun stattdessen dein txtfps verwenden! ;)

Java:
package neueGui;
	import javafx.scene.control.TextField;
	 
	public class txtfps extends TextField 
	{
	    
	    @Override public void replaceText(int start, int end, String text) {
	           if (text.matches("[0-9]") || text == "") {
	               super.replaceText(start, end, text);
	           }
	       }
	     
	       @Override public void replaceSelection(String text) {
	           if (text.matches("[0-9]") || text == "") {
	               super.replaceSelection(text);
	           }
	       }
	 
	}

Klassennamen sollten Groß geschrieben werden und versuche keine Abkürzungen zu verwenden -> FramesPerSecondTextfield
Schreibe das "@Override" über die Methodensignatur nicht in die gleiche Zeile.

Generell erschließt sich mir der Nutzen dieser Klasse nicht? Warum leitest du von TextField ab? Du erweiterst die Funktionalität der Klasse nicht wirklich.
 
Zuletzt bearbeitet:

nook87

Mitglied
hmmm.... dann weiss ich auch nicht weiter suche jetzt schon insgesamt 6 Stunden im Internet wegen dem Zeug und mein Dozent meinte das sollte heut fertig sein ich glaube mir fehlt einfach das Grundwissen um dies 2 Aufgaben zu lösen....:(

Wenn mir das ganze jemand zeigen könnt an hand meines Codes würde mir das ganze vllt beim Verständnis helfen.
 

Joose

Top Contributor
Java:
hbfps.textProperty().addListener(new ChangeListener<String>() {
    @Override
    public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
        // Hier füge deine Überprüfung ein ob ein gültiger Wert eingegeben wurde, 
        // wenn ja --> passt du musst nichts tun
        // wenn nein --> dann setze den alten Wert oder zeige eine Fehlermeldung an, je nachdem was du dir gedacht hat
    }
});

Hier das sollte dir schon weiter helfen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Swing nur Zahlen im Spinner(Textfeld) eingeben ! AWT, Swing, JavaFX & SWT 16
S Textfeld mit zahlen AWT, Swing, JavaFX & SWT 3
D Button und Textfeld Darstellung AWT, Swing, JavaFX & SWT 3
B Scene Builder Textfeld Begrenzen AWT, Swing, JavaFX & SWT 3
T JavaFX MultiLine / MultiStyle Textfeld AWT, Swing, JavaFX & SWT 1
izoards Textfeld für Zeit AWT, Swing, JavaFX & SWT 4
E Frage zum Textfeld AWT, Swing, JavaFX & SWT 8
B Ausgaben einer Umrechnung vom Textfeld in ein Label AWT, Swing, JavaFX & SWT 2
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
J SWT Textfeld markieren und kopieren AWT, Swing, JavaFX & SWT 0
L Ein Actionlistener für ein Textfeld, anstatt viele Actionlistener für ein Textfeld AWT, Swing, JavaFX & SWT 7
karlmasutra JavaFX Verzeichnispfad wählen und an Textfeld übergeben AWT, Swing, JavaFX & SWT 2
J Text in ein Textfeld eingeben und speichern AWT, Swing, JavaFX & SWT 27
cool_brivk24 Großes Textfeld AWT, Swing, JavaFX & SWT 8
J Textfeld nicht sichtbar AWT, Swing, JavaFX & SWT 2
P Knopf gedrückt -> Textfeld befüllen AWT, Swing, JavaFX & SWT 9
P Variable einer Eingabe in anderes Textfeld schreiben AWT, Swing, JavaFX & SWT 7
T [Neuling] Textfeld Inhalt überprüfen und falsche Stellen als msg Ausgeben AWT, Swing, JavaFX & SWT 1
V Swing Eingabe aus Textfeld abholen AWT, Swing, JavaFX & SWT 6
K Swing Textfeld verstecken aber benutzen AWT, Swing, JavaFX & SWT 15
J Swing Strings werden nicht in Textfeld geschrieben AWT, Swing, JavaFX & SWT 8
P Anfängerproblem mit Textfeld AWT, Swing, JavaFX & SWT 6
C Textfeld und Label werden nicht angezeigt (Ubuntu) AWT, Swing, JavaFX & SWT 2
F Textfeld Währungszahlen und automatische Aktualisierung AWT, Swing, JavaFX & SWT 14
R AWT AWT Textfeld durch Klick auf Button erstellen? AWT, Swing, JavaFX & SWT 3
D JavaFX Textfeld Eingabe validieren AWT, Swing, JavaFX & SWT 5
W Swing Nicht-Editierbares Textfeld in Panel in ScrollPane AWT, Swing, JavaFX & SWT 9
T SWT Button soll nur sichbar sein,wenn im Textfeld der Focus ist AWT, Swing, JavaFX & SWT 4
A Textfeld.append/.setText ohne Funktion AWT, Swing, JavaFX & SWT 2
G Text im textfeld in einem Editor anzeigen AWT, Swing, JavaFX & SWT 18
A Swing Zwei Klassen mit Textfeld Eingaben vergleichen und Ausgabe erzeugen AWT, Swing, JavaFX & SWT 10
D Eigenes Textfeld AWT, Swing, JavaFX & SWT 8
A combobox automatisch in ein textfeld wechseln AWT, Swing, JavaFX & SWT 3
D textfeld string zu float AWT, Swing, JavaFX & SWT 5
C TextFeld in Verbindung zur ComboBox automatisch aktualisieren AWT, Swing, JavaFX & SWT 7
C Swing Button in Textfeld (JFormattedTextField) AWT, Swing, JavaFX & SWT 7
A Textfeld nachträglich einfügen AWT, Swing, JavaFX & SWT 4
D JSlider und Textfeld AWT, Swing, JavaFX & SWT 2
E Textfeld auslesen AWT, Swing, JavaFX & SWT 2
G Swing Formatiertes Textfeld mit Trennzeichen AWT, Swing, JavaFX & SWT 2
T Swing URL übergabe aus einem Textfeld AWT, Swing, JavaFX & SWT 17
L SWT Textfeld AutoCompletion AWT, Swing, JavaFX & SWT 3
SexyPenny90 NumberFormatException Textfeld AWT, Swing, JavaFX & SWT 4
P SWT Toolbar mit nur einer Schaltfläche und einem Textfeld AWT, Swing, JavaFX & SWT 2
C Textfeld automatisch befüllen AWT, Swing, JavaFX & SWT 6
S Swing Textfeld Sonderzeichen Blockiern AWT, Swing, JavaFX & SWT 2
alex_fairytail Swing Textfeld Action wenn geschrieben wird? AWT, Swing, JavaFX & SWT 6
C SWT Textfeld mit festem und variablen Inhalt AWT, Swing, JavaFX & SWT 13
J Textfeld Rotation AWT, Swing, JavaFX & SWT 2
C Live Suche mit TextFeld AWT, Swing, JavaFX & SWT 2
maddin86 Eingabe in Textfeld 1 synchron in Textfeld 2 ausgeben AWT, Swing, JavaFX & SWT 9
R JDateChooser Datumseingabe via TextFeld wird verworfen AWT, Swing, JavaFX & SWT 8
W Daten auf Textfeld in anderer Klasse verwenden AWT, Swing, JavaFX & SWT 4
A aus einem Textfeld in double parsen AWT, Swing, JavaFX & SWT 10
A TextField: Textfeld teilweise editierbar AWT, Swing, JavaFX & SWT 2
1 Textfeld auslesen AWT, Swing, JavaFX & SWT 11
G Swing Komponente gesucht (Textfeld mit Liste) AWT, Swing, JavaFX & SWT 2
C SWT: Mehrere Formatter in einem Textfeld AWT, Swing, JavaFX & SWT 6
D Markierter Text in Textfeld AWT, Swing, JavaFX & SWT 3
L SWT Darstellung des Datums in Textfeld? AWT, Swing, JavaFX & SWT 2
M SWT Breite von Textfeld nur ohne Layout änderbar AWT, Swing, JavaFX & SWT 2
H Ausgabe an Textfeld JTextField AWT, Swing, JavaFX & SWT 3
F In Textfeld Kommazahl anzeigen aber ohne Komma eingeben AWT, Swing, JavaFX & SWT 14
D textfeld mit 0 bis n ziffern AWT, Swing, JavaFX & SWT 11
D SWT String aus Textfeld auslesen und in eine Tabelle speichern AWT, Swing, JavaFX & SWT 5
C Button/Textfeld mit Variable verknüpfen AWT, Swing, JavaFX & SWT 4
X Eingabe in Textfeld soll Button aktivieren... AWT, Swing, JavaFX & SWT 12
S SWT Bei Auslösen eines Buttones ein Textfeld generieren AWT, Swing, JavaFX & SWT 2
T SWT String mitten ins Textfeld einfügen + richtige Cursorposition AWT, Swing, JavaFX & SWT 3
N Textfeld füllen sobald es den Fokus verliert AWT, Swing, JavaFX & SWT 2
M SWT Wie Textfeld hinzufügen, nach Auswahl von einem bestimmten Combobox-item? AWT, Swing, JavaFX & SWT 3
M Bilder in einem Textfeld darstellen AWT, Swing, JavaFX & SWT 2
D Objekt (Map) in Textfeld ausgeben AWT, Swing, JavaFX & SWT 10
O Intwerte in Textfeld dastellen AWT, Swing, JavaFX & SWT 4
T Textfeld autmoatisch aktualisieren AWT, Swing, JavaFX & SWT 5
G CellEditor - Kein "Textfeld" AWT, Swing, JavaFX & SWT 6
O [SWT] Autocomplete bei Textfeld in PreferencePage AWT, Swing, JavaFX & SWT 2
G SWT - TextFeld automatisch aktualisieren AWT, Swing, JavaFX & SWT 15
M Prüfen, ob in einem Textfeld/Tabelle eine Eingabe erfolgt is AWT, Swing, JavaFX & SWT 11
F addSelectionListener für ein Textfeld AWT, Swing, JavaFX & SWT 10
K Textfeld wird nur jedes zweite Mal aktualisiert AWT, Swing, JavaFX & SWT 3
V Shortcuts nicht im Textfeld AWT, Swing, JavaFX & SWT 2
A Fokus in ein Textfeld setzen funktioniert nicht AWT, Swing, JavaFX & SWT 3
A Werte in ein Textfeld übernehmen AWT, Swing, JavaFX & SWT 4
A Fehler beim Auslesen aus einem Textfeld AWT, Swing, JavaFX & SWT 2
C Komme nicht an mein textfeld AWT, Swing, JavaFX & SWT 3
B Textfeld, Rollbaken: Eingabe klappt nicht AWT, Swing, JavaFX & SWT 2
P Textfeld einbinden AWT, Swing, JavaFX & SWT 4
P TextFeld Focus entfernen AWT, Swing, JavaFX & SWT 2
7 Zeilenumbruch in Textfeld AWT, Swing, JavaFX & SWT 3
S Textfeld soll auf Änderungen von nutzer und program reagiern AWT, Swing, JavaFX & SWT 3
G Datensätze aus DB in TextFeld ausgeben AWT, Swing, JavaFX & SWT 18
F Wie Oberfläche verbessern? (JButtons, Textfeld verkleinern) AWT, Swing, JavaFX & SWT 5
K Textfeld Programm soll auf Eingabe warten! AWT, Swing, JavaFX & SWT 4
M In Textfeld Textbereiche sperren? AWT, Swing, JavaFX & SWT 2
N SWT Textfeld und Verifylistener AWT, Swing, JavaFX & SWT 11
D Textfeld mit unterschiedlichen Formatierungen AWT, Swing, JavaFX & SWT 3
P SWT: Textfeld an Fenstergröße anpassen AWT, Swing, JavaFX & SWT 3
G Textfeld auslesen und auf der Konsole ausgeben? AWT, Swing, JavaFX & SWT 10
J AWT-Textfeld Aussehen ändern AWT, Swing, JavaFX & SWT 13

Ähnliche Java Themen

Neue Themen


Oben