TextFeld überprüfen

FeBe95

Mitglied
Hallo!

Ich habe ein aus meiner Sicht simples Problem, aber ich finde nirgends einen Lösung:

ich möchte einfach nur in einem if-Abschnitt überprüfen, ob ein eingebener Text einer bestimmten Vorlage entspricht.
Java:
  public void button3_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    if (textField1.getText().length() == 0) {
       GUI.showmessage ("Bitte einen Namen eingeben!");
    }
    else {...}
}
Das habe ich bis jetzt, überprüft aber nur, ob ein Textfeld leer ist. Wie mache ich das für einen bestimmten Text?:
if (textField1.getText() = "bestimmter Text"){} geht nicht 🙁

Danke im Vorraus

FeBe95


PS.: Das GUI.showmessage ist ein eigener Befehl, aus einer anderen Datei importiert:
Java:
import javax.swing.*;

public class GUI{
  public static void showmessage(String text){
    JOptionPane.showMessageDialog(null, text);
  }
}
 
das hatte nicht funktioniert!? Weder mit textField1.getText().equals() = "Name" oder ohne .getText()...

Korrekt wäre:
Java:
    if (textField1.getText().equals("Name")) {
        // ....
    }
Das machst du prinzipiell immer bei Strings so, da nur so der Inhalt und nicht der Speicherort des Objekts verglichen wird.
 
Und dann gleich eine Frage hinterher: in einer if() kann man anscheinend keine || oder Verknüpfung erstellen, wenn das eine ein Integer Wert und das andere ein String ist!? Wie wie in diesem fall =0 und "Name"?
 
Klar kannst du..
Java:
if(number == 1 || "hallo".equals(str)) {...}


EDIT: Danke für den Hinweis, Fab1... hab ich in der Eile einfach mal übersehen das fehlende Gleichheitszeichen. Ist nun geändert.
 
Zuletzt bearbeitet:
Und dann gleich eine Frage hinterher: in einer if() kann man anscheinend keine || oder Verknüpfung erstellen, wenn das eine ein Integer Wert und das andere ein String ist!? Wie wie in diesem fall =0 und "Name"?

Doch, geht auch! Jeder Vergleich gibt ja einen Wahrheitswert zurück, egal, was da verglichen wird. Diese Wahrheitswerte kannst du dann mit [c]||[/c] und [c]&&[/c] etc. verknüpfen.

Java:
if (textField1.getText().length() == 0 || textField1.getText().equals("name")) {
    // ...
}
 
Hier mal ein kleines Beispiel von mir.

Java:
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.*;

import javax.swing.JTextField;

public class Test implements KeyListener {

	static JTextField feld;
	public static void main(String[] args) {
		
		
		feld = new JTextField();
		
		
}

	@Override
	public void keyPressed(KeyEvent e) {
		if(e.getKeyCode() == KeyEvent.VK_ENTER){
		// Das was ausgeführt werden soll wenn enter gedrückt wird.
			if(feld.getText().length() == 0 || feld.getText().equals("Hallo")){
				
			}
			
	}
	}

	@Override
	public void keyReleased(KeyEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void keyTyped(KeyEvent arg0) {
		// TODO Auto-generated method stub
		
	}
}

[EDIT]Ansonsten hier noch ein Tutorial. How to Write a Key Listener (The Java™ Tutorials > Creating a GUI With JFC/Swing > Writing Event Listeners)
ist zwar auf Englisch aber relativ leicht verständlich und sehr gut meiner Meinung nach.
[/EDIT]
 
Zuletzt bearbeitet:
habe nur das
Java:
if(e.getKeyCode() == KeyEvent.VK_ENTER){
übernommen und "e" durch "evt" ersetzt.

Vielen Dank für die schnelle Hilfe!
 
kann ich auch einstellen, dass er das ENTER nur annimmt, wenn ein bestimmter button auch enabled ist?
Java:
if(evt.getKeyCode() == KeyEvent.VK_ENTER && button2.getEnabled(true)){
funktioniert nicht.
 
du könntest in einer Variable (boolean) den Zustand den Buttons speichern. Und anschließend im KeyListener prüfen ob die Variable true ist 🙂
Java:
boolean buttonZustand = false;
// Im actionPerformed des Buttons muss der Zustand auf true gesetzt werden.
	

if(evt.getKeyCode() == KeyEvent.VK_ENTER && buttonZustand == true){
// mach irgendwas
}
 
Zuletzt bearbeitet:
Hallo, ich weiß nicht ob das jetzt noch einen interessiert, aber ich habe eine ziemlich leichte Lösung für das Problem. Was ich aus deinem Code lese, möchtest du überprüfen ob ein Textfeld leer ist.
Java:
import javafx.scene.control.TextField
import javafx.application.Application
...

public class Main extends Application(){
    ...
        TextField txtfld = new Textfield("Das ist eine Text!");
        if (txtfld.getText().isEmpty()){
            ...
        }
    else{...}
}

Also kurz gesagt:
Java:
TextField txtfld = new TextField("Das ist ein Text!");

if(txtfld.getText().isEmpty()){
...
}

else{
...
}

MfG!
 

Zurück
Oben