event dispatch thread fehler. Compiler meckert nicht aber der Interpreter? Warum??

Ketain

Mitglied
Ich habe mich mal daran probiert eine einfache Musikdatenbank zu erstellen. Dazu habe ich mir eine GUI mit Suchfunktion zusammengebastelt, mit der ich aber auch neue Daten hinzufügen kann. Nun haben ich also bis zu einem gewissen Punkt alles programmiert, alle Fehler ausgemerzt und muss jetzt aber festestellen, dass es immer noch nicht so funktioniert, wie es soll.
Ich habe mir en Quelltext noch 3 mal angesehen, Zeile für Zeile, kann aber einfach nicht erkennen, woran es hapert. Ich habe im Internet gelesen, dass dieser Fehler auftritt, wenn ich zb. versuche, sowas wie "hallo welt" in einen Integer Wert umzuwandeln. Sowas kann ich bei mir jedoch nicht entdecken.
Ich bin kein studierter Informatiker, würde mich aber schon als fortgeschrittenen Java Benutzer bezeichen.
Ich hoffe daher auf Hilfe :)

Ich habe 3 Klasse geschrieben, die assoziativ miteinander verbunden sind.
Ich benutze den Java Editor. Mit dem habe ich auch die GUI zusammengebaut.

Hier der Code (dabei war ich mir nicht sicher ob ich den Quelltext der GUI auch posten soll. die wirklichen Probleme treten wahrscheinlich ab Zeile 202 auf ) :

Klasse CGUI:

Java:
public class CGUI extends JFrame
{
  // Anfang Attribute

  private JMenuBar toll = new JMenuBar();
  private JTextField tF_Suchfeld = new JTextField();
  private JButton bT_Suche = new JButton();
  private JRadioButton rB_Titel = new JRadioButton();
  private JRadioButton rB_Jahr = new JRadioButton();
  private JRadioButton rB_Genre = new JRadioButton();
  private JRadioButton rB_Album = new JRadioButton();
  private JRadioButton rB_Preis = new JRadioButton();
  private JRadioButton rB_Interpret = new JRadioButton();
  private String[] jList1Data = {};
  private JList l_DatenAusgabe = new JList(jList1Data);
  private JButton bT_DatenHinzufuegen = new JButton();


  private COrdner Ordner3;


  private ButtonGroup jButtonGroup1 = new ButtonGroup();
  private JTextField tF_Untergrenze = new JTextField();
  private JTextField tF_Obergrenze = new JTextField();
  private JLabel jL_Untergrenze = new JLabel();
  private JLabel jL_Obergrenze = new JLabel();
  private JLabel jL_Euro = new JLabel();
  private JLabel jL_Euro2 = new JLabel();
  private JTextField tF_EingabeTitel = new JTextField();
  private JTextField tF_EingabeInterpret = new JTextField();
  private JTextField tF_EingabeAlbum = new JTextField();
  private JTextField tF_EingabeGenre = new JTextField();
  private JTextField tF_EingabeJahr = new JTextField();
  private JLabel Titel = new JLabel();
  private JLabel Interpret = new JLabel();
  private JLabel Album = new JLabel();
  private JTextField tF_EingabePreis = new JTextField();
  private JLabel Genre = new JLabel();
  private JLabel Jahr = new JLabel();
  private JLabel Preis = new JLabel();
  private JButton bT_Speichern = new JButton();
  private JTextField tF_TestFeld = new JTextField();
  // Ende Attribute

  public CGUI(String title)
  {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 659;
    int frameHeight = 370;
    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);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten


    tF_Suchfeld.setBounds(112, 8, 145, 24);
    tF_Suchfeld.setText("");
    tF_Suchfeld.setEnabled(true);
    cp.add(tF_Suchfeld);
    bT_Suche.setBounds(8, 8, 99, 25);
    bT_Suche.setText("Suche");
    bT_Suche.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        bT_Suche_ActionPerformed(evt);
      }
    });
    bT_Suche.setFont(new Font("MS Sans Serif", Font.BOLD, 15));
    cp.add(bT_Suche);
    rB_Titel.setBounds(32, 112, 65, 17);
    rB_Titel.setText("Titel?");
    cp.add(rB_Titel);
    rB_Jahr.setBounds(128, 136, 65, 17);
    rB_Jahr.setText("Jahr?");
    cp.add(rB_Jahr);
    rB_Genre.setBounds(128, 113, 73, 15);
    rB_Genre.setText("Genre?");
    cp.add(rB_Genre);
    rB_Album.setBounds(32, 160, 73, 17);
    rB_Album.setText("Album?");
    cp.add(rB_Album);
    rB_Preis.setBounds(128, 160, 73, 17);
    rB_Preis.setText("Preis?");
    cp.add(rB_Preis);
    rB_Interpret.setBounds(32, 137, 81, 15);
    rB_Interpret.setText("Interpret?");
    cp.add(rB_Interpret);
    jButtonGroup1.add(rB_Titel);
    jButtonGroup1.add(rB_Genre);
    jButtonGroup1.add(rB_Interpret);
    jButtonGroup1.add(rB_Jahr);
    jButtonGroup1.add(rB_Album);
    jButtonGroup1.add(rB_Preis);
    l_DatenAusgabe.setBounds(24, 192, 233, 81);
    cp.add(l_DatenAusgabe);
    bT_DatenHinzufuegen.setBounds(80, 304, 131, 25);
    bT_DatenHinzufuegen.setText("experimental Button");
    bT_DatenHinzufuegen.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        bT_DatenHinzufuegen_ActionPerformed(evt);
      }
    });
    cp.add(bT_DatenHinzufuegen);
    tF_Untergrenze.setBounds(112, 40, 113, 24);
    tF_Untergrenze.setText("");
    tF_Untergrenze.setVisible(false);
    cp.add(tF_Untergrenze);
    tF_Obergrenze.setBounds(112, 72, 113, 24);
    tF_Obergrenze.setText("");
    tF_Obergrenze.setVisible(false);
    cp.add(tF_Obergrenze);

    jL_Untergrenze.setBounds(24, 48, 73, 16);
    jL_Untergrenze.setText("Untergrenze");
    jL_Untergrenze.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    jL_Untergrenze.setVisible(false);
    cp.add(jL_Untergrenze);
    jL_Obergrenze.setBounds(24, 72, 71, 16);
    jL_Obergrenze.setText("Obergrenze");
    jL_Obergrenze.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    jL_Obergrenze.setVisible(false);
    cp.add(jL_Obergrenze);
    jL_Euro.setBounds(256, 40, 9, 20);
    jL_Euro.setText("€");
    jL_Euro.setFont(new Font("MS Sans Serif", Font.PLAIN, 15));
    jL_Euro.setForeground(Color.BLACK);
    jL_Euro.setVisible(false);
    cp.add(jL_Euro);
    jL_Euro2.setBounds(256, 72, 9, 20);
    jL_Euro2.setText("€");
    jL_Euro2.setFont(new Font("MS Sans Serif", Font.PLAIN, 15));
    jL_Euro2.setForeground(Color.BLACK);
    jL_Euro2.setVisible(false);
    cp.add(jL_Euro2);
    tF_EingabeTitel.setBounds(448, 24, 121, 24);
    tF_EingabeTitel.setText("");
    cp.add(tF_EingabeTitel);
    tF_EingabeInterpret.setBounds(448, 56, 121, 24);
    tF_EingabeInterpret.setText("");
    cp.add(tF_EingabeInterpret);
    tF_EingabeAlbum.setBounds(448, 88, 121, 24);
    tF_EingabeAlbum.setText("");
    cp.add(tF_EingabeAlbum);
    tF_EingabeGenre.setBounds(448, 120, 121, 24);
    tF_EingabeGenre.setText("");
    cp.add(tF_EingabeGenre);
    tF_EingabeJahr.setBounds(448, 152, 121, 24);
    tF_EingabeJahr.setText("");
    cp.add(tF_EingabeJahr);
    Titel.setBounds(384, 24, 41, 24);
    Titel.setText("Titel");
    Titel.setFont(new Font("MS Sans Serif", Font.BOLD, 17));
    cp.add(Titel);
    Interpret.setBounds(352, 57, 78, 24);
    Interpret.setText("Interpret");
    Interpret.setFont(new Font("MS Sans Serif", Font.BOLD, 17));
    cp.add(Interpret);
    Album.setBounds(368, 88, 61, 24);
    Album.setText("Album");
    Album.setFont(new Font("MS Sans Serif", Font.BOLD, 17));
    cp.add(Album);
    tF_EingabePreis.setBounds(448, 184, 121, 24);
    tF_EingabePreis.setText("");
    cp.add(tF_EingabePreis);
    Genre.setBounds(368, 121, 59, 24);
    Genre.setText("Genre");
    Genre.setFont(new Font("MS Sans Serif", Font.BOLD, 17));
    cp.add(Genre);
    Jahr.setBounds(384, 152, 41, 24);
    Jahr.setText("Jahr");
    Jahr.setFont(new Font("MS Sans Serif", Font.BOLD, 17));
    cp.add(Jahr);
    Preis.setBounds(384, 184, 48, 24);
    Preis.setText("Preis");
    Preis.setFont(new Font("MS Sans Serif", Font.BOLD, 17));
    cp.add(Preis);
    bT_Speichern.setBounds(400, 232, 107, 25);
    bT_Speichern.setText("Speichern");
    bT_Speichern.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        bT_Speichern_ActionPerformed(evt);
      }
    });
    bT_Speichern.setFont(new Font("MS Sans Serif", Font.BOLD, 15));
    cp.add(bT_Speichern);
    tF_TestFeld.setBounds(392, 280, 113, 24);
    tF_TestFeld.setText("");
    cp.add(tF_TestFeld);
    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }

  // Anfang Methoden
  
  public void preisSuche()
  {
         if (rB_Preis.isSelected())
         {
            tF_Untergrenze.setVisible(true);
            tF_Obergrenze.setVisible(true);
            jL_Untergrenze.setVisible(true);
            jL_Obergrenze.setVisible(true);
            jL_Euro2.setVisible(true);
            jL_Euro.setVisible(true);
            tF_Suchfeld.setEnabled(false);
         }

  }
  public void bT_Suche_ActionPerformed(ActionEvent evt)
  {
    // TODO hier Quelltext einfügen
   String a = tF_Suchfeld.getText();

   if (rB_Titel.isSelected())
   {
     Ordner3.titelFinden(a);


    String umgewandelt = ("" + Ordner3.titelFinden(a));
    String gefunden[] = {umgewandelt};
    JList l_DatenAusgabe = new JList(gefunden);
    JScrollPane ScrollPane1 = new JScrollPane(l_DatenAusgabe);


   }

   if (rB_Genre.isSelected())
   {
     Ordner3.genreFinden(a);
     String umgewandelt = ("" + Ordner3.genreFinden(a));
     String gefunden[] = {umgewandelt};
     JList l_DatenAusgabe = new JList(gefunden);
     JScrollPane ScrollPane1 = new JScrollPane(l_DatenAusgabe);
   }

   if (rB_Interpret.isSelected())
   {
    Ordner3.interpretFinden(a);
    String umgewandelt = ("" + Ordner3.interpretFinden(a));
    String gefunden[] = {umgewandelt};
    JList l_DatenAusgabe = new JList(gefunden);
    JScrollPane ScrollPane1 = new JScrollPane(l_DatenAusgabe);
   }

   if (rB_Album.isSelected())
   {
    Ordner3.albumFinden(a);
    String umgewandelt = ("" + Ordner3.albumFinden(a));
    String gefunden[] = {umgewandelt};
    JList l_DatenAusgabe = new JList(gefunden);
    JScrollPane ScrollPane1 = new JScrollPane(l_DatenAusgabe);
   }

   if (rB_Jahr.isSelected())
   {
     int b = Integer.parseInt(a);
     Ordner3.jahrFinden(b);
     String umgewandelt = ("" + Ordner3.jahrFinden(b));
     String gefunden[] = {umgewandelt};
     JList l_DatenAusgabe = new JList(gefunden);
     JScrollPane ScrollPane1 = new JScrollPane(l_DatenAusgabe);
   }

   if (rB_Preis.isSelected())
   {
     Double uG = Double.parseDouble(tF_Untergrenze.getText());
     Double oG = Double.parseDouble(tF_Obergrenze.getText());
     Ordner3.preisFinden(uG,oG);
     String umgewandelt = ("" + Ordner3.preisFinden(uG,oG));
     String gefunden[] = {umgewandelt};
     JList l_DatenAusgabe = new JList(gefunden);
     JScrollPane ScrollPane1 = new JScrollPane(l_DatenAusgabe);

   }

  }

  public void bT_DatenHinzufuegen_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen
    //private JButton bT_Hallo = new JButton();

  }

  public String getSelectedRadioButton(ButtonGroup bg) {
    for (java.util.Enumeration<AbstractButton> e = bg.getElements(); e.hasMoreElements();) {
      AbstractButton b = e.nextElement();
      if (b.isSelected()) return b.getText();
    }


    return null;
  }

  public void bT_Speichern_ActionPerformed(ActionEvent evt)
  {
    int x = Integer.parseInt(tF_EingabeJahr.getText());
    Double y = Double.parseDouble(tF_EingabePreis.getText());

    Ordner3.SongAttribute(new CSong(tF_EingabeTitel.getText(), tF_EingabeInterpret.getText(), tF_EingabeGenre.getText(), tF_EingabeAlbum.getText(), x, y));
    tF_TestFeld.setText(tF_EingabeTitel.getText());



  }


  // Ende Methoden

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




Hier die 2. Klasse COrdner:


Java:
public class COrdner {

  // Anfang Attribute
  private CSong[] Ordner2;
  private int AnzahlSongs = 0;

  // Ende Attribute

  // Anfang Methoden




  public int AnzahlSongsAusgeben ()
  {
        return AnzahlSongs;
  }

  public void SongAttribute(CSong AlleAttribute)
  {
     Ordner2[AnzahlSongs] = AlleAttribute;
     AnzahlSongs++;
  }

  //Alle normalen Abfragen:

  public CSong albumFinden(String album)
  {
    for (int index = 0; index <= AnzahlSongs; index++)
    {
      if(Ordner2[index].getAlbum().equals(album))
      {
        return Ordner2[index];
      }

    }
    return null;
  }

  public CSong titelFinden (String titel)
   {
        for (int index=0; index <= AnzahlSongs; index++)
        {
            if (Ordner2[index].getTitel().equals(titel))
            {
             return Ordner2[index];
            }
        }
        return null;
    }
  public CSong genreFinden(String genre)
    {
        for (int index=0; index <= AnzahlSongs; index++)
        {
             if (Ordner2[index].getGenre().equals(genre))
                {
                    return Ordner2[index];
                }
        }
        return null;
    }

   public CSong interpretFinden (String interpret)
   {
        for (int index=0; index <= AnzahlSongs; index++)
        {
          if (Ordner2[index].getInterpret().equals(interpret))
          {
            return Ordner2[index];
          }
        }
        return null;
    }


  public CSong preisFinden(Double uG,Double oG)
   {
     for( int index=0; index <= AnzahlSongs; index++)
      {
        for(Double g=uG; g<=oG ; g = g+0.01)
        {

          //String e = (new Double.valueOf(g)).toString();  //um g/e in eine Zeichenkette zu verwandeln
          if(Ordner2[index].getPreis() == g)
          {
            return Ordner2[index];
          }
        }
      }
      return null;
   }

   public CSong jahrFinden(int jahr)
  {
    for(int index=0; index <= AnzahlSongs; index++)
    {
      if(Ordner2[index].getJahr() == jahr)
      {
         return Ordner2[index];
      }
    }
    return null;
  }
}


Und hier die 3. und letzte Klasse CSong:

Java:
public class CSong {

  // Anfang Attribute

  private String Titel;
  private String Interpret;
  private String Genre;
  private String Album;
  private int Jahr;
  private double Preis;
  // Ende Attribute

  // Anfang Methoden
  public CSong(String Titel, String Interpret, String Genre, String Album, int Jahr, Double Preis)
  {
    this.Titel = Titel;
    this.Interpret = Interpret;
    this.Genre = Genre;
    this.Album = Album;
    this.Jahr = Jahr;
    this.Preis = Preis;
  }

  public String getTitel()
  {
    return Titel;
  }

  public String getInterpret()
  {
    return Interpret;
  }

  public String getGenre()
  {
    return Genre;
  }

  public String getAlbum()
  {
    return Album;
  }

  public int getJahr()
  {
    return Jahr;
  }

  public double getPreis()
  {
    return Preis;
  }
  // Ende Methoden




}


Danke für die Hilfe schonmal im Vorraus.
 

Ketain

Mitglied
Oh sorry klar :)

Hier der Fehler:


Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at CGUI.bT_Speichern_ActionPerformed(CGUI.java:319)
at CGUI$3.actionPerformed(CGUI.java:199)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6267)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6032)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
 

musiKk

Top Contributor
Das ist doch recht deutlich? In Zeile 319 der Klasse [c]CGUI[/c] gibt es eine NullPointerException - in irgendeiner Zeile wird also versucht, [c]null[/c] zu dereferenzieren. Welche genau das ist, kann ich (ohne großes Nachforschen) nicht sagen, da müsstest Du mal bei Dir selbst schauen.
 

Ketain

Mitglied
Also ich muss zugeben, dass ich zum ersten mal mit solch einer Fehlermeldung zu tun hatte.
Ich kann jedoch selbst nach diesem Hinweis immer noch keinen Fehler finden. Ich habe nochmal alles überprüft, womit diese Zeile was zu tun hat (sie soll Daten aus Textfeldern auslesen und dann in ein Array schreiben/ mehrere Attribute an eine Indexstelle).

Ich kann einfach nicht erkennen, WO da etwas schief gehen könnte.
Hier nochmal die Zeile:
[JAVA=367]
try
{
Ordner3.SongAttribute(new CSong(tF_EingabeTitel.getText(), tF_EingabeInterpret.getText(), tF_EingabeGenre.getText(), tF_EingabeAlbum.getText(), x, y));
}
catch(NullPointerException doof)
{
System.out.println("We have a big error here :(");
}

[/code]

und hier die Methode, auf die eigentlich nur zugegriffen wird, um das Array zu füllen (Klasse COrdner):

Java:
public void SongAttribute(CSong AlleAttribute)
  {
     Ordner2[AnzahlSongs] = AlleAttribute;
     AnzahlSongs++;
  }
 

musiKk

Top Contributor
Da kann ziemlich viel schief gehen:
Code:
Ordner3
,
Code:
tF_EingabeTitel
,
Code:
tF_EingabeInterpret
,
Code:
tF_EingabeGenre
oder
Code:
tF_EingabeAlbum
können [c]null[/c] sein. Schaue Dir das am besten mal mit einem Debugger an, da sieht man das eigentlich am schnellsten.
NPEs sollte man übrigens nie fangen (müssen); die dürfen einfach nicht auftreten. Alles andere sind Programmierfehler.

Davon abgesehen würde ich Dir nahe legen, die Bezeichner an die Java-Konventionen anzupassen: Klassen groß, Variablen klein, alles mit Camelcase.
 

Ketain

Mitglied
Danke für die Antworten. Für heute mach ich aber Schluss damit, morgen ist immerhin auch noch ein Tag :).
Also Danke für die Hilfe.
 

jgh

Top Contributor
...Ich habe im Internet gelesen, dass dieser Fehler auftritt, wenn ich zb. versuche, sowas wie "hallo welt" in einen Integer Wert umzuwandeln. Sowas kann ich bei mir jedoch nicht entdecken....

Java:
if (rB_Preis.isSelected()) {
			Double uG = Double.parseDouble(tF_Untergrenze.getText());
			Double oG = Double.parseDouble(tF_Obergrenze.getText());
//hier machst du bspw genau sowas..und nicht nur hier:
//es wird weder geprüft, ob ein Text eingegeben wurde (wenn nein=> dann NPE) oder ob du bei einer 
//Eingabe diese auch in einen Double parsen kannst.

hier z.B. genau das gleiche:
Java:
public void bT_Speichern_ActionPerformed(ActionEvent evt) {
		int x = Integer.parseInt(tF_EingabeJahr.getText());
		Double y = Double.parseDouble(tF_EingabePreis.getText());

eine Möglichkeit so etwas zu vermeiden, ist die Eingabe erst auf Null zu prüfen und dann mit einem Try-/Catch Block zu bearbeiten:

exemplarisch mal für eine Methode:

Java:
	public void bT_Speichern_ActionPerformed(ActionEvent evt) {
		try {
			if (null != tF_EingabeJahr.getText() && null != tF_EingabePreis.getText()) {
				int x = Integer.parseInt(tF_EingabeJahr.getText());
				Double y = Double.parseDouble(tF_EingabePreis.getText());

				Ordner3.SongAttribute(new CSong(tF_EingabeTitel.getText(),
						tF_EingabeInterpret.getText(), tF_EingabeGenre
								.getText(), tF_EingabeAlbum.getText(), x, y));
				tF_TestFeld.setText(tF_EingabeTitel.getText());
			} else {
				return;
			}
		} catch (NumberFormatException nfe) {
			JOptionPane.showMessageDialog(this, "Eingabe ist nicht korrekt\n\n"
					+ nfe.getMessage());
                                return;
		}
	}
 
Zuletzt bearbeitet:

Ketain

Mitglied
DANKE!!!!!!
Jetzt weiß ich endlich wie der Fehler aussieht :) und auch wie ich ihn behebe.

Double uG = Double.parseDouble(tF_Untergrenze.getText());

Diese Befehle haben sonst immer einwandfrei funktioniert, weshalb ich nicht auch nur eine Sekunde daran gedacht habe, das der an allem Schuld ist. Aber jetzt bin ich schlauer!
Danke auch für das Codebeispiel. Das kann man ja immer wieder mal gebrauchen :)
 

jgh

Top Contributor
bitte bitte, dein befehl funktioniert auch, solange eine Eingabe vorhanden ist und diese auch geparst werden kann.

ansonsten kann man auch mit der Methode
Code:
 tF_Untergrenze.setDocument(new DeineEigeneDocumentKlasse())
arbeiten, die dann -abhängig von deiner Implementation- entweder nur x-Zeichen und nur bspw Zahlen zulässt.

oder mit einem JFormattedTextField, oder oder oder...gibt genug andere Möglichkeiten ;)
 

Ketain

Mitglied
Die Lösung von oben ist gerade richtig!
Ich muss es so programmieren, dass ich in das gleiche Feld Zahlen sowie auch Buchstaben eingeben kann.

Jedenfalls Problem gelöst.
Dankesehr nochmal an alle.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Key-Event-Sender Allgemeine Java-Themen 5
E Datei verschoben Event Allgemeine Java-Themen 3
D Event Sourcing umsetzen Was? Wie? Allgemeine Java-Themen 33
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
FrittenFritze Problem mit einer JComboBox, Event temporär deaktivieren Allgemeine Java-Themen 11
G Methoden Aus einem Event, wo ich weiß, dass es ausgeführt werden wird, eine Get-Methode basteln Allgemeine Java-Themen 8
M Best Practice Alternativen für Event-Handling Allgemeine Java-Themen 3
C Zugriff auf Event felder Allgemeine Java-Themen 0
Bananabert Interface Custom 'Event' mit Interface Allgemeine Java-Themen 10
das-mo Warten auf Event Allgemeine Java-Themen 7
K Event benutzen Allgemeine Java-Themen 4
F None-GUI-Event Handling Allgemeine Java-Themen 3
D mouseMove in mouseMotionListener-Event Allgemeine Java-Themen 3
R Klasse über Button Event in anderer Klasse informieren Allgemeine Java-Themen 11
A Relative Mausposition ohne Event Allgemeine Java-Themen 2
V Priorität der Event-Handlings setzen Allgemeine Java-Themen 4
algorismi int-variable Value Change event Allgemeine Java-Themen 3
slawaweis Suche Klassen für Event Managment und Time Allgemeine Java-Themen 2
B Window Closing Event Allgemeine Java-Themen 3
A Event Handler Allgemeine Java-Themen 5
H Event ähnliches System Allgemeine Java-Themen 20
G XML Event --> Befüllen einer Node Allgemeine Java-Themen 2
Q Dateizugriff mitbekommen - file change event Allgemeine Java-Themen 13
W eigene event-Klasse, event posten Allgemeine Java-Themen 2
M Speichern von Word als Event abfangen Allgemeine Java-Themen 7
P Event-Handling mit JSP Allgemeine Java-Themen 7
MQue public void serialEvent(SerialPortEvent event) Allgemeine Java-Themen 4
E Wie: Eigener Listener, eigenes Event (möglichst einfach) Allgemeine Java-Themen 29
MQue Button Event beim drücken und beim auslassen Allgemeine Java-Themen 7
T OutputStream - Event bei Byte-Fluss Allgemeine Java-Themen 5
E Button: Event auslösen Allgemeine Java-Themen 7
B event kunstlich auslösen Allgemeine Java-Themen 8
R Dasselbe Event zweimal aufgefangen? Allgemeine Java-Themen 10
D Thread durch Mouse-Event beenden Allgemeine Java-Themen 5
I Listener/Event selber machen. Allgemeine Java-Themen 4
S methode stoppen / auf ein event warten Allgemeine Java-Themen 5
G Key Event Allgemeine Java-Themen 2
B Thread soll auf Event warten, dann Daten an Klasse senden Allgemeine Java-Themen 2
G konsolenanwendung durch key event beenden Allgemeine Java-Themen 4
M Event Queues in Java? Allgemeine Java-Themen 10
G Problem Canvas Mouse Event Allgemeine Java-Themen 7
J ToolTipText Event abfangen Allgemeine Java-Themen 5
A Endlosschleife + Event Allgemeine Java-Themen 7
G EHM EVENT handling ? Allgemeine Java-Themen 5
C Menü & event Allgemeine Java-Themen 4
C event weiterreichen Allgemeine Java-Themen 3
H double dispatch und equals(Object) Allgemeine Java-Themen 6
R 11 GB File lesen ohne zu extrahieren Filedaten Bereich für Bereich adressieren dann mit Multi-Thread id die DB importieren Allgemeine Java-Themen 3
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
smarterToby Wie stoppe ich diesen Thread Allgemeine Java-Themen 4
A Thread.sleep Problem Allgemeine Java-Themen 2
J Thread started nur einmal Allgemeine Java-Themen 19
W Server-Thread schreibt nicht alle Dateien Allgemeine Java-Themen 6
OnDemand Logfile pro User / Thread Allgemeine Java-Themen 7
OnDemand Thread / Service abbrechen Allgemeine Java-Themen 3
Thallius Ist meine static Helper Class Thread save? Allgemeine Java-Themen 9
P Swing Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: npoints > xpoints.length || npoints > ypoints.length Allgemeine Java-Themen 5
B Thread.sleep() in EJB Container wie lösen? Allgemeine Java-Themen 11
S Ist das Neuzuweisen von Feldern atomic und damit Thread-Safe? Allgemeine Java-Themen 2
S Exception in thread "main" java.lang.NullPointerException at FamilienApp.main(FamilienApp.java:15) Allgemeine Java-Themen 1
J Einen Thread in einer Schleife Allgemeine Java-Themen 2
E HILFE !! Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils Allgemeine Java-Themen 4
Flynn Thread-Problem... Allgemeine Java-Themen 2
G Thread-Programmierung Allgemeine Java-Themen 5
S Datei wird nicht gefunden Thread.currentThread().getContextClassLoader().getResourceAsStream() Allgemeine Java-Themen 1
G Beendet sich der Thread selbst?! Allgemeine Java-Themen 3
mrbig2017 Sleep wird ignoriert und der Thread wartet nicht Allgemeine Java-Themen 1
S Thread beenden Allgemeine Java-Themen 9
M Array aus Thread Objekten erstellen Allgemeine Java-Themen 2
Aruetiise Swing JOptionPane ohne denn Thread zu pausieren Allgemeine Java-Themen 1
M Nanosekunden-Pause innerhalb einen Thread-Loops Allgemeine Java-Themen 3
E Thread Exception Allgemeine Java-Themen 6
javaerd Binomialkoeffizient ausrechnen, Exception in thread "main" java.lang.StackOverflowError Allgemeine Java-Themen 6
T Merkwürdiges Thread-Verhalten Allgemeine Java-Themen 6
K Thread Problem Allgemeine Java-Themen 6
W Thread sleep 30 sekunden - wenn keine Antwort bis dahin neu senden Allgemeine Java-Themen 2
H Thread bleibt stehen bei jar in jar Allgemeine Java-Themen 1
J Threads HTTP Request (Thread) dauert lange - in Android Allgemeine Java-Themen 3
F CPU Last eines Thread ausfindig machen Allgemeine Java-Themen 0
V Compiler-Fehler Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 125, Size: 125 Allgemeine Java-Themen 11
Tausendsassa Threads Einen Thread sich selbst schließen lassen Allgemeine Java-Themen 17
P Threads BufferedImage, Thread Concurrency Allgemeine Java-Themen 1
M Klasse in separaten Thread ausführen.Wie genau? Allgemeine Java-Themen 2
llabusch Thread blockiert Dialog Allgemeine Java-Themen 1
J Thread wait() Allgemeine Java-Themen 2
V Thread.sleep und InterruptedException? Allgemeine Java-Themen 1
G Thread nicht von GC zerstört Allgemeine Java-Themen 6
J Wie erschaffe ich einen sicheren Datenaustausch zwischen Thread und Nicht-Threads Allgemeine Java-Themen 8
Sogomn Thread blocken bis Taste gedrückt Allgemeine Java-Themen 5
T Starten vom Thread Allgemeine Java-Themen 3
T Wait/Notify() bei Thread Allgemeine Java-Themen 6
J Exception in thread "main" java.lang.NoClassDefFoundError Allgemeine Java-Themen 4
M Exception in thread "AWT-EventQueue-0" Allgemeine Java-Themen 6
Q Thread wacht nicht auf Allgemeine Java-Themen 7
T Fragen zum Thread-Thema Allgemeine Java-Themen 4
T Threads Input/Output im Thread - Datei ohne Inhalt Allgemeine Java-Themen 1
T Fragen zum Thread-Thema Allgemeine Java-Themen 9
C Threads Variablen in einem Thread Aktualisieren Allgemeine Java-Themen 17
U Thread beenden Allgemeine Java-Themen 3
W Threads Mit Thread und Runtime externe Programme öffnen Allgemeine Java-Themen 0

Ähnliche Java Themen

Neue Themen


Oben