Leeres Textfeld nicht auslesen

DarkEagle

Mitglied
Hey Leute,
ich habe ein Trinkspiel geschrieben. Es gibt 2x 5 Textfelder. Jeweils für die Spieler und für Getränke.
Es gibt einen Button der Random zahlen von 1-5 Generiert und jeweils 5 If-Schleifen die für die Ausgabe des Trinkenden Spielers zuständig sind.
Jetzt zu meiner Frage:
Wie bekomme ich das hin, das wenn statt 5 Spieler nur 4 Leute spielen, dass das 5. Textfeld nicht ausgelesen wird, also das es nicht vorkommt, dass ein leeres Textfeld ausgelesen und ausgegeben wird.
Ich hoffe, ich habe mich halbwegs verständlich ausgedrückt.

Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.Random;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 12.09.2013
  * @author Daniel
  */

public class Trinkspiel extends JFrame {
  // Anfang Attribute
  private JPanel pnlHintergrund = new JPanel(null, true);
    private JTextField tfdName2 = new JTextField();
    private JTextField tfdName1 = new JTextField();
    private JTextField tfdName5 = new JTextField();
    private JTextField tfdName3 = new JTextField();
    private JTextField tfdName4 = new JTextField();
    private JLabel lblNamen = new JLabel();
    private JButton btnNamenEinlesen = new JButton();
    private JLabel lSpieler = new JLabel();
    private JLabel lblTrinker = new JLabel();
    private JLabel lblMuss = new JLabel();
    private JLabel lblAnzahl = new JLabel();
    private JLabel lblGetraenk = new JLabel();
    private JTextField tfdTrinken1 = new JTextField();
    private JTextField tfdTrinken3 = new JTextField();
    private JTextField tfdTrinken5 = new JTextField();
    private JLabel lblSchluecke = new JLabel();
    private JLabel lblErgebniss = new JLabel();
    private JTextField tfdTrinken4 = new JTextField();
    private JTextField tfdTrinken2 = new JTextField();
    private JLabel lblausgabeTrinken = new JLabel();
    private JLabel tfdCopyright = new JLabel();
    private JLabel lblTrinkspiel = new JLabel();
  // Ende Attribute

  public Trinkspiel(String title) {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 445; 
    int frameHeight = 632;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    setResizable(false);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten

    pnlHintergrund.setBounds(1, -9, 457, 617);
    pnlHintergrund.setBackground(Color.BLUE);
    cp.add(pnlHintergrund);
    tfdName2.setBounds(16, 144, 150, 20);
    pnlHintergrund.add(tfdName2);
    tfdName1.setBounds(16, 112, 150, 20);
    pnlHintergrund.add(tfdName1);
    tfdName5.setBounds(16, 240, 150, 20);
    pnlHintergrund.add(tfdName5);
    tfdName3.setBounds(16, 176, 150, 20);
    pnlHintergrund.add(tfdName3);
    tfdName4.setBounds(16, 208, 150, 20);
    pnlHintergrund.add(tfdName4);
    lblNamen.setBounds(16, 72, 151, 28);
    lblNamen.setText("Bitte Namen eingeben!");
    lblNamen.setToolTipText("Wenn es weniger als 5 sind einfach einen Punkt ins Feld setzen!");
    lblNamen.setBackground(Color.BLUE);
    lblNamen.setOpaque(true);
    lblNamen.setForeground(Color.WHITE);
    pnlHintergrund.add(lblNamen);
    btnNamenEinlesen.setBounds(152, 272, 123, 25);
    btnNamenEinlesen.setText("Start");
    btnNamenEinlesen.setMargin(new Insets(2, 2, 2, 2));
    btnNamenEinlesen.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        btnNamenEinlesen_ActionPerformed(evt);
      }
    });
    pnlHintergrund.add(btnNamenEinlesen);
    lblTrinker.setBounds(24, 344, 126, 52);
    lblTrinker.setText("");
    lblTrinker.setBackground(Color.BLUE);
    lblTrinker.setOpaque(true);
    lblTrinker.setForeground(Color.WHITE);
    lblTrinker.setFont(new Font("Impact", Font.BOLD, 22));
    pnlHintergrund.add(lblTrinker);
    lblMuss.setBounds(176, 352, 46, 20);
    lblMuss.setText("");
    lblMuss.setBackground(Color.BLUE);
    lblMuss.setOpaque(true);
    lblMuss.setForeground(Color.WHITE);
    pnlHintergrund.add(lblMuss);
    lblAnzahl.setBounds(240, 344, 38, 52);
    lblAnzahl.setText("");
    lblAnzahl.setBackground(Color.BLUE);
    lblAnzahl.setOpaque(true);
    lblAnzahl.setFont(new Font("Tahoma", Font.BOLD, 22));
    lblAnzahl.setForeground(Color.WHITE);
    pnlHintergrund.add(lblAnzahl);
    lblGetraenk.setBounds(264, 80, 148, 20);
    lblGetraenk.setText("Bitte Getränke angeben!");
    lblGetraenk.setBackground(Color.BLUE);
    lblGetraenk.setOpaque(true);
    lblGetraenk.setForeground(Color.WHITE);
    pnlHintergrund.add(lblGetraenk);
    tfdTrinken1.setBounds(264, 112, 150, 20);
    pnlHintergrund.add(tfdTrinken1);
    tfdTrinken3.setBounds(264, 176, 150, 20);
    pnlHintergrund.add(tfdTrinken3);
    tfdTrinken5.setBounds(264, 240, 150, 20);
    pnlHintergrund.add(tfdTrinken5);
    lblSchluecke.setBounds(304, 352, 112, 20);
    lblSchluecke.setText("");
    lblSchluecke.setBackground(Color.BLUE);
    lblSchluecke.setOpaque(true);
    lblSchluecke.setForeground(Color.WHITE);
    pnlHintergrund.add(lblSchluecke);
    lblErgebniss.setBounds(8, 416, 446, 92);
    lblErgebniss.setText("");
    lblErgebniss.setBackground(Color.BLUE);
    lblErgebniss.setOpaque(true);
    lblErgebniss.setForeground(Color.WHITE);
    lblErgebniss.setFont(new Font("@Adobe Gothic Std B", Font.BOLD, 28));
    lblErgebniss.setHorizontalTextPosition(SwingConstants.CENTER);
    lblErgebniss.setHorizontalAlignment(SwingConstants.CENTER);
    pnlHintergrund.add(lblErgebniss);
    tfdTrinken4.setBounds(264, 208, 150, 20);
    pnlHintergrund.add(tfdTrinken4);
    tfdTrinken2.setBounds(264, 144, 150, 20);
    pnlHintergrund.add(tfdTrinken2);
    lblausgabeTrinken.setBounds(160, 552, 110, 20);
    lblausgabeTrinken.setText("");
    lblausgabeTrinken.setBackground(Color.BLUE);
    lblausgabeTrinken.setOpaque(true);
    lblausgabeTrinken.setForeground(Color.WHITE);
    pnlHintergrund.add(lblausgabeTrinken);
    tfdCopyright.setBounds(0, 592, 380, 20);
    tfdCopyright.setText("Copyright by Daniel Müller und Jannik Wietstock          Version 1.0.0");
    tfdCopyright.setFont(new Font("Comic Sans MS", Font.BOLD, 9));
    tfdCopyright.setBackground(Color.BLUE);
    tfdCopyright.setOpaque(true);
    tfdCopyright.setForeground(Color.WHITE);
    pnlHintergrund.add(tfdCopyright);
    lblTrinkspiel.setBounds(11, 10, 398, 63);
    lblTrinkspiel.setText("Das Trinkspiel");
    lblTrinkspiel.setBackground(Color.BLUE);
    lblTrinkspiel.setOpaque(true);
    lblTrinkspiel.setForeground(Color.RED);
    lblTrinkspiel.setFont(new Font("Segoe Script", Font.BOLD, 36));
    lblTrinkspiel.setHorizontalTextPosition(SwingConstants.CENTER);
    lblTrinkspiel.setHorizontalAlignment(SwingConstants.CENTER);
    pnlHintergrund.add(lblTrinkspiel);
    // Ende Komponenten

    setVisible(true);
  }

  // Anfang Methoden
  public void btnNamenEinlesen_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    Random rand = new Random();
    
    int name = rand.nextInt(5)+1;
    String name1 = tfdName1.getText();
    String name2 = tfdName2.getText();
    String name3 = tfdName3.getText();
    String name4 = tfdName4.getText();
    String name5 = tfdName5.getText();
    
    if(name == 1){
    lblTrinker.setText(name1);
    }
    
    if(name == 2){
    lblTrinker.setText(name2);
    }
    
    if(name == 3){
    lblTrinker.setText(name3);
    }
    
    if(name == 4){
    lblTrinker.setText(name4);
    }
    
    if(name == 5){
    lblTrinker.setText(name5);
    }
    
    int schluecke = rand.nextInt(3)+1;
    lblAnzahl.setText(schluecke + "");
    
    
    int trinken = rand.nextInt(5)+1;
    String trinken1 = tfdTrinken1.getText();
    String trinken2 = tfdTrinken2.getText();
    String trinken3 = tfdTrinken3.getText();
    String trinken4 = tfdTrinken4.getText();
    String trinken5 = tfdTrinken5.getText();
    
    
    if (trinken == 1){
      lblErgebniss.setText(trinken1);
    }
    
    if (trinken == 2){
      lblErgebniss.setText(trinken2);
    }
    
    if (trinken == 3){
      lblErgebniss.setText(trinken3);
    }
    
    if (trinken == 4){
      lblErgebniss.setText(trinken4);
    }
    
    if (trinken == 5){
      lblErgebniss.setText(trinken5);
    }
    
    lblMuss.setText("muss");
    
    if (schluecke == 1){
      lblSchluecke.setText("Schluck");
    }
    
    if (schluecke == 2){
      lblSchluecke.setText("Schlucke");
    }
    
    if (schluecke == 3){
      lblSchluecke.setText("Schlucke");
    }
    
    lblausgabeTrinken.setText("trinken!");
    
  }


  // Ende Methoden

  public static void main(String[] args) {
    new Trinkspiel("Trinkspiel");
}
}

Hoffe ihr könnt mir helfen könnt...
 

Shulyn

Bekanntes Mitglied
Du könntest dir einfach merken wie viele Spieler dabei sind. Und dann beim auslesen dies Prüfen...
Arten wie du dies machen kannst gibt es sehr sehr viele...

Java:
if(anzahlSpieler >= 1) {
textfeld1.lesen
}
if(anzahlSpieler >= 2) {
textfeld2.lesen
}
//usw.

// Oder ein Switch indem du falltrough nutzt...

        int anzahl = 4;

        switch (anzahl) {
        case 6: System.err.println("6");
        case 5: System.err.println("5");
        case 4: System.err.println("4");
        case 3: System.err.println("3");
        case 2: System.err.println("2");
        case 1: System.err.println("1");

        default:
            break;
        }

Oder das Textfeld überprüfen bevor du es ausliest...

Java:
if(textfeld != null && textfeld.getText() != "") {
//auslesen und weiterbenutzen...
}

Shu!
 
Zuletzt bearbeitet:

parabool

Bekanntes Mitglied
generell die if-Schleifen :D weglassen und nur soviel Textfelder, Labels usw. erzeugen wie Spieler da sind.

Also z.B Textfelder in Anzahlspieler - großes Array oder Liste = dynamisch
 
Zuletzt bearbeitet:

DarkEagle

Mitglied
Es geht ja darum, dass das Trinkspiel alltagstauglich ist, also nicht immer erst umgeschrieben werden muss... Außerdem will ich das Programm auch noch Freunden zur verfügung stellen die garkeine Ahnung haben im Bereich Java ^^ Ich werde mich mal ran machen und die Sachen ausprobieren :) Dankeschön :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
B Leeres Textfeld, was nun. Java Basics - Anfänger-Themen 4
J Leeres Textfeld auslesen Java Basics - Anfänger-Themen 6
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S JOptionPane komplett leeres Fenster Java Basics - Anfänger-Themen 4
M Nur Zahlen oder ein leeres JFormattedTextField zulassen Java Basics - Anfänger-Themen 7
R Nächstes leeres Feld im array füllen? Java Basics - Anfänger-Themen 14
R JDBC leeres ResultSet Problem Java Basics - Anfänger-Themen 2
C Datentypen ArrayList.remove(index) hinterlässt leeres Feld Java Basics - Anfänger-Themen 5
M Leeres String Arrayfeld bearbeiten Java Basics - Anfänger-Themen 12
D jar - gui mal startet es mal nur ein leeres Fenster warum? Java Basics - Anfänger-Themen 4
H combobox auf leeres Feld prüfen? Java Basics - Anfänger-Themen 10
M String aus Datei auslesen - Medung Leeres Parameterfeld Java Basics - Anfänger-Themen 4
Z Problem der Prüfung auf ein leeres Formularfeld Java Basics - Anfänger-Themen 3
A Auf leeres arrayfeld prüfen Java Basics - Anfänger-Themen 5
R leeres Feld im GridLayout (dummy Objekt erzeugen?) Java Basics - Anfänger-Themen 2
M Textfeld zurücksetzen Java Basics - Anfänger-Themen 3
G JSP Textfeld einlesen Java Basics - Anfänger-Themen 2
J JDatePicker: Datum wird nicht in Textfeld übernommen Java Basics - Anfänger-Themen 5
N Zeichen in einem Textfeld zählen und hinterlegen Java Basics - Anfänger-Themen 6
M Erste Schritte Mit Variable verschiedene Texte in Textfeld einfügen Java Basics - Anfänger-Themen 27
M Wie kann ich hier ein Textfeld hinzufügen Java Swing? Java Basics - Anfänger-Themen 1
M Wie kann ich im JAVA-GUI im Textfeld ein Array speichern Java Basics - Anfänger-Themen 4
T Erste Schritte Textfeld abfragen ob etwas enthalten ist. Java Basics - Anfänger-Themen 17
E Wert in Textfeld schreiben Java Basics - Anfänger-Themen 1
E Anzahl Datensätze in Textfeld Java Basics - Anfänger-Themen 5
N Auf TextFeld aus anderer Klasse zugreifen ohne es zu übergeben Java Basics - Anfänger-Themen 3
L Text eingeben und im Textfeld auslesen lassen Java Basics - Anfänger-Themen 2
N Problem mit Swing Textfeld und Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 6
B Datentypen Textfeld auf Nicht-Zahlen überprüfen Java Basics - Anfänger-Themen 10
B Wert aus TextFeld in Canvas benutzen Java Basics - Anfänger-Themen 0
P Textfeld auslesen Java Basics - Anfänger-Themen 4
S TextFieldFilter - Wenn Textfeld leer dann setze 0 Java Basics - Anfänger-Themen 9
W Textfeld auslesen und in Liste speichern Java Basics - Anfänger-Themen 11
L KeyListener ohne textfeld Java Basics - Anfänger-Themen 4
J Problem mit String von Textfeld Java Basics - Anfänger-Themen 13
H Textfeld auslesen lassen Java Basics - Anfänger-Themen 11
N Textfeld- und Buttonerkennung einer Webseite Java Basics - Anfänger-Themen 6
M textfeld auslesen und in liste einlesen Java Basics - Anfänger-Themen 2
R GUI - Liste mit Textfeld und Radiobuttons Java Basics - Anfänger-Themen 8
C Buttons über Textfeld beschriften Java Basics - Anfänger-Themen 10
E Eingabemöglichkeiten für Textfeld begrenzen Java Basics - Anfänger-Themen 6
G String-Wert aus Textfeld auslesen Java Basics - Anfänger-Themen 9
D Canvas löschen über MouseEntered in Textfeld Java Basics - Anfänger-Themen 6
X Methoden [GWT] Dynamisches Textfeld PopUp erstellen Java Basics - Anfänger-Themen 6
F TextFeld überprüfen Java Basics - Anfänger-Themen 20
T text von textfeld auslesen und wieder reinschreiben Java Basics - Anfänger-Themen 10
T Erste Schritte Textfeld übernimmt Größe nicht Java Basics - Anfänger-Themen 11
Joew0815 Homepage Textfeld füllen und Button klicken Java Basics - Anfänger-Themen 10
Kenan89 TextFeld und Zahlen Java Basics - Anfänger-Themen 14
B Textfeld aufpoppen lassen Java Basics - Anfänger-Themen 15
S Werte aus einem Textfeld lesen Java Basics - Anfänger-Themen 13
H Focus auf Textfeld in JOptionPane Java Basics - Anfänger-Themen 2
D Interpreter-Fehler NumberFormatException Textfeld Java Basics - Anfänger-Themen 24
C Mit Java Textfeld einer externen Anwendung auslesen Java Basics - Anfänger-Themen 9
J Textfeld für Taschenrechner Java Basics - Anfänger-Themen 3
U Drag&Drop von Tabelle in Textfeld Java Basics - Anfänger-Themen 3
M Inhalt Textfeld prüfen Java Basics - Anfänger-Themen 4
G Exception - Unvollständige Eingabe im Textfeld Java Basics - Anfänger-Themen 2
F Textfeld: String (x,xx) --> double Java Basics - Anfänger-Themen 8
F Text aus Textfeld1 in Textfeld 2 kopieren Java Basics - Anfänger-Themen 5
D Problem mit TextFeld Array Java Basics - Anfänger-Themen 18
R Textfeld "sperren", Text darf nicht eingegeben werden - wie realisierbar? Java Basics - Anfänger-Themen 2
I auf Textfeld aus anderer Klasse heraus zugreifen Java Basics - Anfänger-Themen 2
W OOP Datum aus Access in Textfeld schreiben ohne Stunden/Minuten/Sekunden Java Basics - Anfänger-Themen 2
J Escape taste geht ohne cursor im textfeld nicht. Java Basics - Anfänger-Themen 4
S Excel Textfeld auslesen Java Basics - Anfänger-Themen 6
1 Textfeld aktiv beim starten des Programms Java Basics - Anfänger-Themen 5
J double wert aus textfeld auslesen Java Basics - Anfänger-Themen 2
A Grafisches Textfeld zur Ausgabe Java Basics - Anfänger-Themen 3
H Textfeld Werte Java Basics - Anfänger-Themen 14
S Textfeld Wert auslesen Java Basics - Anfänger-Themen 2
A Mehrere verschieden Farben / Textfeld Java Basics - Anfänger-Themen 2
M Textfeld soll nur Zahlen erlauben Java Basics - Anfänger-Themen 26
G Textfeld und Label in einem Tab? Anfänger braucht Hilfe Java Basics - Anfänger-Themen 3
E Textfeld aktualisieren Java Basics - Anfänger-Themen 3
L Textfeld Inhalt löschen Java Basics - Anfänger-Themen 2
G Exception bei leerem Textfeld Java Basics - Anfänger-Themen 12
Antoras Klasse in einem Textfeld zeichnen Java Basics - Anfänger-Themen 4
J Zahl in Textfeld hinzufügen Java Basics - Anfänger-Themen 10
P Tab in textfeld einfügen Java Basics - Anfänger-Themen 4
C Textfeld Eingabe überprüfen! Java Basics - Anfänger-Themen 12
B Textfeld auslesen Java Basics - Anfänger-Themen 5
R textfeld größe definieren Java Basics - Anfänger-Themen 2
R Textfeld und zahlen? Java Basics - Anfänger-Themen 4
C alle möglichen Datumseingaben im Textfeld abfangen Java Basics - Anfänger-Themen 12
A Ausgabe einer variablen im textfeld Java Basics - Anfänger-Themen 3
L Nur ganzzahlige Zahlen im Textfeld Java Basics - Anfänger-Themen 3
B Text per Button von ein textfeld in das andere? Java Basics - Anfänger-Themen 9
S voreingestellte zahl im textfeld Java Basics - Anfänger-Themen 2
H Text aus Textfeld per Actionlistener in Label ausgeben. Java Basics - Anfänger-Themen 6
V editierbares textfeld Java Basics - Anfänger-Themen 2
R Frage zur Länge von Textfeld und String Java Basics - Anfänger-Themen 4
A Ein TextFeld als mit Echtzeitausgabe? (Wie bei der Console) Java Basics - Anfänger-Themen 3
G textfeld nur mit zahlen Java Basics - Anfänger-Themen 2
G Textfeld zweimal Auslesen - Probleme Java Basics - Anfänger-Themen 6
V Tastatur Abfrage im Lisener für eine Auswahl üder Textfeld Java Basics - Anfänger-Themen 8
G AWT-Textfeld zeichenanzahl begrentzen Java Basics - Anfänger-Themen 4
G Wie Text in Textfeld zentrieren? Java Basics - Anfänger-Themen 2
W Aus Textfeld ein "MySQL Date" auslesen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben