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)