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
	
	
	
	
	
		
	
und hier die Fehlermeldung
	
	
	
	
	
		
	
			
			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) 
				 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		