2016-04-25 8 views
0

Ich versuche, Daten aus einer Textdatei in eine JList mit WindowBuilder mit einem Klick auf eine Schaltfläche zu laden. Wie Sie aus dem Code unten sehen können, bekomme ich einige Ausnahmen, die ich nicht beheben kann. Importieren java.io.FileReader hilft nicht.Swing GUI IOException und FileNotFoundException

Ich habe eine separate Klassendatei mit dem Code für meine Score-Vektor.

JButton btnLoadData = new JButton("Load Data"); 
    btnLoadData.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent arg0) { 

      String sLine; 

      Vector<Score> scoreVec = new Vector<Score>(); 

      //Here I am getting a FileNotFoundException for (new FileReader("scores.txt") 
      BufferedReader in = new BufferedReader(new FileReader("scores.txt")); 


      //Here I am getting an IOException for in.readLine() 
      while ((sLine = in.readLine()) != null) 
      { 
       scoreVec.addElement(new Score(sLine)); 
      } 

      //this is also throwing an IOException 
      in.close(); 


      //Placeholders until I get the rest of the program working 
      System.out.println(scoreVec.get(1).name); 
      System.out.println(scoreVec.get(1).country); 
     } 
    }); 
    btnLoadData.setBounds(10, 227, 89, 23); 
    frame.getContentPane().add(btnLoadData); 
+0

'neuen Filereader ("scores.txt")' die setzen hohe Punktzahlen in einem (Unterverzeichnis von) stabilen Pfad, der garantiert lesbar ist. Dieser Pfad wäre ** 'user.home' **. –

Antwort

1

Sie müssen die erhöhten Ausnahmen zu fangen und zu handhaben, zum Beispiel ...

public void actionPerformed(ActionEvent arg0) { 

    String sLine; 

    Vector<Score> scoreVec = new Vector<Score>(); 

    //Here I am getting a FileNotFoundException for (new FileReader("scores.txt") 
    try (BufferedReader in = new BufferedReader(new FileReader("scores.txt"))) { 

     //Here I am getting an IOException for in.readLine() 
     while ((sLine = in.readLine()) != null) { 
      scoreVec.addElement(new Score(sLine)); 
     } 

    } catch (IOException exp) { 
     exp.printStackTrace(); 
    } 

    //Placeholders until I get the rest of the program working 
    System.out.println(scoreVec.get(1).name); 
    System.out.println(scoreVec.get(1).country); 
} 

die Exceptions trail See und The try-with-resources Statement um weitere Informationen zu

0

Was den realen Weg der jeweiligen Klasse ist und scores.txt

ich recomment nicht, aber nur eine kann man vollständigen Pfad scores.txt Datei verwenden.

+0

scores.txt ist ein Ordner oberhalb des src-Ordners (also denke ich, der Hauptprojektordner?) – RThomP

+0

Relative Pfade sind in Ordnung und machen das Programm flexibler, aber Sie müssen aufpassen, wie der Ausführungsort des Programms ändern kann – MadProgrammer