Problem beim GUI

  • Themenstarter Gelöschtes Mitglied 56914
  • Beginndatum
G

Gelöschtes Mitglied 56914

Gast
Hi Leute,
Ich bin noch neu in sachen GUI und habe mir folgenden code zusammengebastelt(mit eclipse).
Dieses Programm soll aus einer txt Wokabeln auslesen und eine zufällige abfragen.
Fehler werden keine angezeigt doch wenn ich das programm starten will gibt es eine riesige fehlermeldung! Ich verstehe bloß das Problem am code nicht, vlt. könnte mal jemand drüber schauen und mich verbessern.

Schonmal Danke McCrafterIV

Java:
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import java.util.Random;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

@SuppressWarnings("serial")
public class main extends JFrame {


   private JPanel contentPane;
   private JTextField textField;
   protected BufferedReader in;
   public String Vocfile = "voc1.txt";

   public static void main(String[] args) {
       EventQueue.invokeLater(new Runnable() {
           public void run() {
               try {
                   main frame = new main();
                   frame.setVisible(true);
               } catch (Exception e) {
                   e.printStackTrace();
               }
           }
       });
   }

   /**
    * Create the frame.
    */
   public main() {
       
       
       //Zeilen gezählt
       long l = System.currentTimeMillis(); // Systemzeit merken => Dauer berechnen!
       try {
           @SuppressWarnings({ "unused", "resource" })
           BufferedReader in = new BufferedReader(new FileReader("voc1.txt"));
       } catch (FileNotFoundException e1) {
           // TODO Auto-generated catch block
           e1.printStackTrace();
       }
         int counter = 0;
         try {
           while ( in .readLine() != null ) {
               counter++;
             }
       } catch (IOException e1) {
           // TODO Auto-generated catch block
           e1.printStackTrace();
       }
         System.out.println("Anzahl: " + counter);
         System.out.println("Dauer: " + (System.currentTimeMillis()-l)); // Dauer ausgeben.
       
         //Zufallszeile berechnet
       int Zahl = counter -1;
       Zahl = Zahl / 2;
       Random r = new Random();
       int zfzahl = r.nextInt(Zahl); //alle zahlen 0+1+2.....+49 beachte: 50 ist nicht inbegriffen
       
       //Zeile einlesen
       try {
           String Vocdeu = getLineNumber(Zahl, Vocfile);
       } catch (IOException e2) {
           // TODO Auto-generated catch block
           e2.printStackTrace();
       }
       int Zahl2 = Zahl+1;
       try {
           String Vocausl = getLineNumber(Zahl, Vocfile);
       } catch (IOException e2) {
           // TODO Auto-generated catch block
           e2.printStackTrace();
       }
       
       
       
       setResizable(false);
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       setBounds(100, 100, 288, 164);
       contentPane = new JPanel();
       contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
       setContentPane(contentPane);
       
       JButton btnNewButton = new JButton("next");
       btnNewButton.setBounds(42, 91, 81, 23);
       btnNewButton.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent arg0) {
               
               //MACHEN
               //Zeilen gezählt
               long l = System.currentTimeMillis(); // Systemzeit merken => Dauer berechnen!
               try {
                   BufferedReader in = new BufferedReader(new FileReader("voc1.txt"));
               } catch (FileNotFoundException e1) {
                   // TODO Auto-generated catch block
                   e1.printStackTrace();
               }
                 int counter = 0;
                 try {
                   while ( in .readLine() != null ) {
                       counter++;
                     }
               } catch (IOException e1) {
                   // TODO Auto-generated catch block
                   e1.printStackTrace();
               }
                 System.out.println("Anzahl: " + counter);
                 System.out.println("Dauer: " + (System.currentTimeMillis()-l)); // Dauer ausgeben.
               
                 //Zufallszeile berechnet
               int Zahl = counter -1;
               Zahl = Zahl / 2;
               Random r = new Random();
               int zfzahl = r.nextInt(Zahl); //alle zahlen 0+1+2.....+49 beachte: 50 ist nicht inbegriffen
               
               //Zeile einlesen
               
               String voc1 = textField.getText();
               try {
                   String lös = getLineNumber(zfzahl, "voc1.txt");
                   if(voc1 == lös){
                       JOptionPane.showMessageDialog(main.this, "Richtig!");
                   }else{
                       JOptionPane.showMessageDialog(main.this, "Falsch! es wäre " + lös + " gewesen!");
                   }
               } catch (IOException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
               }
           }
       });
       contentPane.setLayout(null);
       contentPane.add(btnNewButton);
       
       JLabel label = new JLabel("");
       label.setBounds(305, 21, 0, 0);
       contentPane.add(label);
       
       JButton btnClose = new JButton("close");
       btnClose.setBounds(150, 91, 81, 23);
       contentPane.add(btnClose);
       btnClose.addActionListener(new ActionListener() {
           
           @Override
           public void actionPerformed(ActionEvent e) {
               System.exit(EXIT_ON_CLOSE);
               }
       });
       
       textField = new JTextField();
       textField.setBounds(57, 60, 162, 20);
       contentPane.add(textField);
       textField.setColumns(10);
       
       JLabel lblBitteGibDie = new JLabel("Bitte gib die Gesuchet Wokabel ein");
       lblBitteGibDie.setBounds(42, 22, 203, 14);
       contentPane.add(lblBitteGibDie);
       
       try {
           JLabel voc = new JLabel(getLineNumber(Zahl, Vocfile));
           voc.setBounds(77, 44, 107, 14);
           contentPane.add(voc);
       } catch (IOException e1) {
           // TODO Auto-generated catch block
           e1.printStackTrace();
       }
       
   }
   
   public static String getLineNumber(int num, String file) throws IOException{
          @SuppressWarnings("resource")
       LineNumberReader reader = new LineNumberReader (new FileReader(file) );
          for(int i = 0; i<num-1; i++)
             reader.readLine();
          return reader.readLine();       
   }
}

und hier die Fehlermeldung
Java:
java.io.FileNotFoundException: voc1.txt (Das System kann die angegebene Datei nicht finden)
   at java.io.FileInputStream.open0(Native Method)
   at java.io.FileInputStream.open(Unknown Source)
   at java.io.FileInputStream.<init>(Unknown Source)
   at java.io.FileInputStream.<init>(Unknown Source)
   at java.io.FileReader.<init>(Unknown Source)
   at main.<init>(main.java:52)
   at main$1.run(main.java:33)
   at java.awt.event.InvocationEvent.dispatch(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$500(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)
java.lang.NullPointerException
   at main.<init>(main.java:59)
   at main$1.run(main.java:33)
   at java.awt.event.InvocationEvent.dispatch(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$500(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)
 

Kababär

Top Contributor
Steht doch da: java.io.FileNotFoundException: voc1.txt (Das System kann die angegebene Datei nicht finden)

Stelle sicher, dass es die Datei voc1.txt auch gibt. Erwartet wird die Datei, da der Pfad relativ angegeben wurde, im selben Verzeichnis wie dein Projekt. Welcher konkrete Pfad angezeigt wird, kannst du mit

Code:
String filePath = new File("").getAbsolutePath();

ermitteln und deine Datei dahin verfrachten. Normalerweise legt man Dateien aber unter src/main/resources oder src/test/resources ab, je nachdem, ob die Datei für Testzwecke oder für den Betrieb gedacht ist.
 
G

Gelöschtes Mitglied 56914

Gast
gut der fehler ist behoben aber da ist immernoch die Meldung(war ich aber auch doof.. :D)
Java:
java.lang.NullPointerException
   at main.<init>(main.java:59)
   at main$1.run(main.java:33)
   at java.awt.event.InvocationEvent.dispatch(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$500(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)
 

Kababär

Top Contributor
Code:
       try {
           @SuppressWarnings({ "unused", "resource" })
           BufferedReader in = new BufferedReader(new FileReader("voc1.txt"));
       } catch (FileNotFoundException e1) {
           // TODO Auto-generated catch block
           e1.printStackTrace();
       }
         int counter = 0;
         try {
           while ( in .readLine() != null ) {
               counter++;
             }
       } catch (IOException e1) {
           // TODO Auto-generated catch block
           e1.printStackTrace();
       }

Benutzt du keine IDE? Wo genau tritt die NP Exception auf? Ich glaube das liegt daran, dass die Zeile

while ( in .readLine() != null ) {

nicht weiß, was in bedeutet, da du das Objekt weiter Objekt außerhalb des Scopes erstellst. Achte auf deine Blockstellungen ({...}).
 

truesoul

Top Contributor
das war mir zuviel.. :D kannst du mir den code mal senden

Vom Smartphone sicher nicht. ;) Du hast doch den Code verschiebe den besagten Code einfach.

Siehe letzten Post von @Kababär

Aber auch Vocdeu, Vocdeu1 sollte außerhalb von den try catch Block erstellt werden.

Erstelle eine Methode die dir die Anzahl der Zeilen zurück gibt. Du verwendest sehr viel doppelten Code.

Die Ausgabe der Dauer ergibt auch kein Sinn. Aktuell Zeit minus Start Zeit wäre sinnvoller.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
J Problem beim Umstellen auf Java jdk 13 Allgemeine Java-Themen 3
A Problem beim öffnen von Java-Installern Allgemeine Java-Themen 1
J Problem beim Generischen Klassen und Interfaces Allgemeine Java-Themen 2
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
F Problem beim Einlesen einer Textdatei Allgemeine Java-Themen 12
I Problem beim Aufrufen, von Objektmethoden/ -variablen Allgemeine Java-Themen 6
D Selenium WebDriver HtmlUnitDriver Problem beim Automatisieren Allgemeine Java-Themen 1
F Problem beim Speichern eines Attachments Allgemeine Java-Themen 3
M Problem beim Starten der Anwendung Allgemeine Java-Themen 3
O Problem beim Auslesen einer Arraylist von JComboBoxen Allgemeine Java-Themen 2
GUI-Programmer JNI - Problem beim Erstellen der .dll Allgemeine Java-Themen 9
D Problem mit Referenzen beim Serialisieren Allgemeine Java-Themen 3
R Problem beim vCard Manipulieren Allgemeine Java-Themen 2
Rudolf Problem beim Visitorpattern Allgemeine Java-Themen 2
J Problem beim Auslesen einer Datei vom Server Allgemeine Java-Themen 4
M Problem beim schreiben einer eigene generische Klasse Hashtable Allgemeine Java-Themen 11
U Mailclient über getDesktop.mail vorbereiten, Problem beim Anhang: Allgemeine Java-Themen 3
M Problem beim schreiben einer eigene generische Klasse LinkedList Allgemeine Java-Themen 34
N Problem beim lesen einer File in JAR-File Allgemeine Java-Themen 3
N iText Problem beim verlinken anderer PDFs Allgemeine Java-Themen 2
M Problem beim Drucken von PDFs Allgemeine Java-Themen 3
H Problem beim Sortieren einer HashMap mit TreeSet Allgemeine Java-Themen 4
I Problem beim Ausführen von Shell Commandos Allgemeine Java-Themen 3
O Problem beim Ausgeben von Arrays Allgemeine Java-Themen 9
L Problem beim animieren von Bildern in Applet Allgemeine Java-Themen 23
C Problem beim einlesen bestimmter Seiten Allgemeine Java-Themen 5
Apo JNI-Problem beim erneuten Laden einer dll Allgemeine Java-Themen 28
S Problem beim Drucken auf Netzwerkdrucker unter Linux Allgemeine Java-Themen 9
S Problem beim Anlegen eines JDialogs! Allgemeine Java-Themen 4
A Problem mit ShutdownHook beim schließen Allgemeine Java-Themen 7
S Problem beim Löschen des Inhalts des Fensters Allgemeine Java-Themen 4
A Problem beim serialisieren/deserialisieren einer ArrayList Allgemeine Java-Themen 3
M Problem beim Umrechnen von Pixel in cm. Allgemeine Java-Themen 6
M Problem beim ausführen von Batchdateien Allgemeine Java-Themen 21
Escorter Problem beim starten von Batchfiles Allgemeine Java-Themen 4
A Problem beim Starten der H2-Datenbank Allgemeine Java-Themen 4
L WindowsTrayIcon in Java 1.4 - Problem beim ausführen der JAR Allgemeine Java-Themen 2
E Problem beim Anlegen einer Datei Allgemeine Java-Themen 4
E Problem beim Dateien kodieren ("Byte = Byte +1") Allgemeine Java-Themen 3
G Problem beim starten von eclipse product Allgemeine Java-Themen 2
M Problem beim Erstellen eines Objektes Allgemeine Java-Themen 3
M Problem beim laden von vielen Bildern Allgemeine Java-Themen 16
S Problem beim Einlesen von byte-werten aus datei Allgemeine Java-Themen 2
H Problem beim Malen auf ein Panel Allgemeine Java-Themen 2
G iText: Problem beim Drucken von AcroFormen Allgemeine Java-Themen 2
E Problem beim fertigen Programm die Hintergrundfarbe ändern Allgemeine Java-Themen 8
karambara Sonderzeichen-Problem beim Lesen und Speichern von Dateien Allgemeine Java-Themen 6
R Problem beim Datentransfer Allgemeine Java-Themen 19
C Problem beim Umstieg von Java1.4 auf 1.5 Allgemeine Java-Themen 5
K javax.comm Problem beim starten aus .jar heraus Allgemeine Java-Themen 3
S Problem beim Bearbeiten von Java-Dateien unter Linux Allgemeine Java-Themen 3
S Hab ein Problem! Bei Dame! Beim Umranden! Allgemeine Java-Themen 2
G Problem beim speichern von Dateien Allgemeine Java-Themen 8
M Problem mit PageFormat beim Drucken Allgemeine Java-Themen 2
Streeber Problem beim Kompilieren und Ausführen Allgemeine Java-Themen 20
E Problem beim Compilieren Allgemeine Java-Themen 6
O JNI Problem beim kompilieren Allgemeine Java-Themen 2
M Codepage Problem (Vertauscht Zeichen beim Lesen aus Datei) Allgemeine Java-Themen 3
P Problem beim "spliten" eine Textdatei Allgemeine Java-Themen 3
F Problem beim Drucken mit javax.print Allgemeine Java-Themen 2
Z Problem beim Aufruf eines Listener? Allgemeine Java-Themen 4
bernd Problem beim kopieren! Allgemeine Java-Themen 2
B problem beim erstellen einer ausführbaren jar-datei Allgemeine Java-Themen 5
A Problem beim Aufruf von javac Allgemeine Java-Themen 7
J JFrame Problem beim schließen Allgemeine Java-Themen 2
S Problem beim Zugriff auf Internetseiten Allgemeine Java-Themen 4
R Problem beim speichern von eigenem objekt Allgemeine Java-Themen 6
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
P Selenium . getText Problem Allgemeine Java-Themen 9
A Jar zu Exe Problem Allgemeine Java-Themen 13
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
A Thread.sleep Problem Allgemeine Java-Themen 2
A Problem bei der Nachbarschafttest Allgemeine Java-Themen 11
Splayfer Problem: no main manifest attribute Allgemeine Java-Themen 3
Splayfer JDA Problem mit MessageCounter Allgemeine Java-Themen 0
Splayfer Problem mit BufferedWriter Allgemeine Java-Themen 3
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
C Maven Problem mit Datenbanktreiber (H2 Embedded) Allgemeine Java-Themen 12
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
C ArrayList Problem Allgemeine Java-Themen 3
kev34 nim-Spiel problem Allgemeine Java-Themen 1
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
G Welches Problem besteht bei den Typparametern? Allgemeine Java-Themen 5
temi Problem mit Aufrufreihenfolge bei Vererbung Allgemeine Java-Themen 3
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
T PIM basierend auf netbeans via AnyDesk Problem Allgemeine Java-Themen 3
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
Kirby.exe Verständnis Problem bei Rucksack Problem Allgemeine Java-Themen 6
B Eclipse-Lombok-Problem Allgemeine Java-Themen 19
I Input/Output ObjectOutputStream - Problem Allgemeine Java-Themen 7
1 Multiple Choice Knapsack- Problem Allgemeine Java-Themen 2
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
E Problem mit Gridlayout und Button Allgemeine Java-Themen 2
A Array Problem Allgemeine Java-Themen 8
bueseb84 Problem Allgemeine Java-Themen 0

Ähnliche Java Themen

Neue Themen


Oben