Hallo
Ich habe eine schon eine Methode die meine .txt-Datei problemlos ausliest. Danach füllt das Programm die ausgelesene Daten in den dazu bestimmten Textfelder und macht was damit.
Ich will aber aber mehrere Zeilen auslesen die ich in nur r 2 von den Textfelder einfülle.. z.B.
ich habe in der txt-Datei die Daten:
900
100
900
500
900
200
880
80
60
400
900
100
#50
*30
#70
*80
Die Zahlen ohne Zeichen davor sind für nur 1 Textfeld vorgesehen und dann ist gut..
das klappt. So.. Ich Zahle mit Zeichen # sind für Breite und die * dir Höhe verschiedene Rechtecke die anhand diese Daten nacheinander gezeichnet werden sollen. Deswegen will ich diese Zeilen nacheinander solange auslesen und in den beide Textfelder speichern bis es die Zahlen mit Zeichen gibt.
Konsole:
headerW: 900
headerH: 100
contentW: 900
contentH: 500
footerW: 900
footerH: 200
tile1W: 880
tile1H: 80
tile2W: 60
tile2H: 400
tile3W: 900
tile3H: 100
BausteinW: #50
BausteinH: *30
headerW: #70
headerH: *80
contentW: null
contentH: null
footerW: null
footerH: null
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:504)
....
at java.lang.Integer.parseInt(Integer.java:527)
Ich habe eine schon eine Methode die meine .txt-Datei problemlos ausliest. Danach füllt das Programm die ausgelesene Daten in den dazu bestimmten Textfelder und macht was damit.
Ich will aber aber mehrere Zeilen auslesen die ich in nur r 2 von den Textfelder einfülle.. z.B.
ich habe in der txt-Datei die Daten:
900
100
900
500
900
200
880
80
60
400
900
100
#50
*30
#70
*80
Die Zahlen ohne Zeichen davor sind für nur 1 Textfeld vorgesehen und dann ist gut..
Java:
if (object.getSource() == open){
CreateFile create=new CreateFile();
JFileChooser fc = new JFileChooser();
setContentPane(create);
getContentPane().add(fc);
fc.setFileFilter(new FileNameExtensionFilter("*.txt","txt"));
int state = fc.showOpenDialog(this);
if ( state == JFileChooser.APPROVE_OPTION ){
File openFile = fc.getSelectedFile();
BufferedReader br = null;
try {
String line=null;
br = new BufferedReader(new FileReader(openFile));
while ((line = br.readLine()) != null) {
System.out.println("headerW: " + line);
create.headerWidth.setText(line);
line = br.readLine(); //2.Zeile
System.out.println("headerH: " + line);
create.headerHeight.setText(line);
line = br.readLine(); //3.Zeile
System.out.println("contentW: " + line);
create.contentWidth.setText(line);
line = br.readLine(); //4.Zeile
System.out.println("contentH: " + line);
create.contentHeight.setText(line);
line = br.readLine(); //5.Zeile
System.out.println("footerW: " + line);
create.footerWidth.setText(line);
line = br.readLine(); //6.Zeile
System.out.println("footerH: " + line);
create.footerHeight.setText(line);
// button CreateLayout
create.buttonCreateLayout.doClick();
create.editPanel.repaint();
line = br.readLine(); //7.Zeile
System.out.println("tile1W: " + line);
create.tile1Width.setText(line);
line = br.readLine(); //8.Zeile
System.out.println("tile1H: " + line);
create.tile1Height.setText(line);
line = br.readLine(); //9.Zeile
System.out.println("tile2W: " + line);
create.tile2Width.setText(line);
line = br.readLine(); //10.Zeile
System.out.println("tile2H: " + line);
create.tile2Height.setText(line);
line = br.readLine(); //11.Zeile
System.out.println("tile3W: " + line);
create.tile3Width.setText(line);
line = br.readLine(); //12.Zeile
System.out.println("tile3H: " + line);
create.tile3Height.setText(line);
//button Create FixForms
create.buttonFixForms.doClick();
create.editPanel.repaint();
/* Also HIER ist das PROBLEM
* Die werden nur einmal auslesen, geschrieben und dann fägsts von vorne und
* kommt natürlich zu Fehler und falsche Auslesen (siehe Ausgabe auf der
* Konsole)*/
line = br.readLine();
if(line.startsWith("#")){
System.out.println("BausteinW: " + line);
create.bausteinWidth.setText(line.substring(1));
}
line = br.readLine();
if(line.startsWith("*")){
System.out.println("BausteinH: " + line);
create.bausteinHeight.setText(line.substring(1));
}
//button Create FixForms
create.buttonIndividualForms.doClick();
create.editPanel.repaint();
}
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
} finally {
//Close the BufferedReader
try {
if (br != null)
br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
Konsole:
headerW: 900
headerH: 100
contentW: 900
contentH: 500
footerW: 900
footerH: 200
tile1W: 880
tile1H: 80
tile2W: 60
tile2H: 400
tile3W: 900
tile3H: 100
BausteinW: #50
BausteinH: *30
headerW: #70
headerH: *80
contentW: null
contentH: null
footerW: null
footerH: null
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:504)
....
at java.lang.Integer.parseInt(Integer.java:527)