2Danke
ERLEDIGT
JA
JA
ANTWORTEN
8
8
ZUGRIFFE
235
235
EMPFEHLEN
-
Hallo zusammen,
Ich bin hier im Praktikum und habe die Aufgabe ein kleines "tool" zu programmen dass TextDateien mit bestimmten endungen z.B(rs/scr) einliest und dann in eine Exceldatei speichert. Dazu verwende ich JXL.
Klassen:
1 Mainclass
2 Class zum lesen und Exceldatei erstellen
3 Class mit JFileChooser und ein Filter
Problem:
Von der MainClass aus kriege ich das nicht hin meine 2 Class auszuführen bzw. es wird ausgeführt jedoch wird keine Exceldatei erstellt obwohl diese Class alleine funktioniert.
Hier die Class 2 verkürzt:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
import java.io.*; import java.util.ArrayList; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableCellFormat; import jxl.write.WritableFont; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; public class ReadFromFile{ public static void lesen(String dateiname) throws IOException, RowsExceededException, WriteException{ String line = ""; ArrayList<String> list = new ArrayList<String>(); try { File file = new File(dateiname); FileReader fr = new FileReader(file); //BufferedReader erstellen und mit FileReader verknüfpen BufferedReader br = new BufferedReader(fr); //Solange zeilen zum ArrayList adden bis ende for(int i = 0;(line = br.readLine())!=null ;i++){ list.add(line); } //Fehlermeldung falls Datei nicht vorhanden }catch (FileNotFoundException e) { System.out.println("File not found"); } //FileReader erstellen um die Texte einzulesen // Kontroll ausgabe // for(int j=0;j<list.size();j++){ // System.out.println(list.get(j)); // } //Workbook / Worksheet erstellen WritableWorkbook workbook = Workbook.createWorkbook(new File("TextToExcel.xls")); WritableSheet sheet = workbook.createSheet("First Sheet", 0); //Spaltengröße festlegen sheet.getSettings().setDefaultColumnWidth((int) 68.5); //Title Label erstellen WritableFont arialbold10 = new WritableFont(WritableFont.ARIAL, 10 ,WritableFont.BOLD); WritableCellFormat arialboldform = new WritableCellFormat(arialbold10); Label titellab = new Label(0,0,"Dokumentation",arialboldform); sheet.addCell(titellab); //Labels erstellen und mit ArrayList inhalt füllen for(int l = 1;l<list.size();l++){ WritableFont arial10 = new WritableFont(WritableFont.ARIAL, 10); WritableCellFormat arial10format = new WritableCellFormat(arial10); Label label = new Label(0,l,list.get(l),arial10format); //Labels den Sheet hinzufügen sheet.addCell(label); } workbook.write(); workbook.close(); } }
Ohne main class also als methode funktioniert es nicht ;/
Brauche hilfe jungsGeändert von Tis (09.09.10 um 12:01 Uhr)
-
09.09.10 11:25 #2
Moin und Willkommen bei tutorials.de

Zuerst: benutze bitte die Code-Tags (#-Button oder Klammerung des Codes mit [_CODE] [/_CODE] OHNE die Unterstriche!)
Wenn ich Dich richtig verstehe, ist (1) die Hauptklasse des Tools, über die Du es startest.Klassen:
1 Mainclass
2 Class zum lesen und Exceldatei erstellen
3 Class mit JFileChooser und ein Filter
Somit dürfen (2) und (3) nicht über eine weitere main-Methode aufgerufen werden.
Du musst diese Klassen per import in (1) bekannt machen ...
Schau' mal hier:
http://openbook.galileocomputing.de/...a9eee2efc4e0d4
Dieses Buch ist generell sehr gut zur Einarbeitung in Java geeignet!
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
Danke dir erstmal ;D
Ja es ist richtig in der Main Class werden 2 anderen Klassen Instanziniert
dabei entsteht denke ich mein problem, ich gib dir ein Beispiel:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
public class ReadFromFile{ public static void lesen(String dateiname) throws IOException, RowsExceededException, WriteException{ .... try { //[B]Dateiname wird erwartet und auch eigentlich übergeben aber da entsteht anscheinend ein fehler[/B] File file = new File(dateiname); FileReader fr = new FileReader(file); //BufferedReader erstellen und mit FileReader verknüfpen BufferedReader br = new BufferedReader(fr); //Solange zeilen zum ArrayList adden bis ende for(int i = 0;(line = br.readLine())!=null ;i++){ list.add(line); } //Fehlermeldung falls Datei nicht vorhanden }catch (FileNotFoundException e) { System.out.println("File not found"); } //usw.. Workbook erstellen , sheet erstellen [/Code] Die Methode lesen versuche ich dann in der Mainclass auszuführen über ein Botton [Code] //Jbstart= JButton jtstart = JTextField mit Dateipfad //dn = Dateiname jbstart.addActionListener(new ActionListener(){ public void actionPerformed (ActionEvent e) { if(e.getSource()==jbstart){ String dn = jtstart.getText(); ReadFromFile.lesen(dn);
Oder wird die Exceldatei nicht erstellt weil die Methode lesen "void" ist?Geändert von Tis (09.09.10 um 12:02 Uhr)
-
09.09.10 11:51 #4
Moin,
erstens: '2' ist nun wirklich kein Name für eine Klasse
! ! ! !
Es gibt da Konventionen - siehe hierzu auch mein Link auf das Insel-Buch ! ! ! !
zweitens: ich sehe nicht, wo (und vor allem wie) die die Klasse '2' instantiierst .....
Minimal würde ich so was erwarten:
Code java:1 2 3 4
import ...<Pfad>.2; ... 2 ReadFromFile = new 2(); ReadFromFile.lesen( dn );
Aber wie schon gesagt - benenne erst mal die Klasse richtig
BTW: es war vorhin ein Tippfehler von mit bzgl. der Klammerung
Richtig muss es (in Deinem Fall) heißen: [_JAVA] [/_JAVA] OHNE die Unterstriche!
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
2 ist nur ein bsp ;D die heisst bei mir ReadFromFile ;D
-
Das Problem ist dass wenn ich versuche das "normal" zu instanzinieren mein Eclips meckert.
Ich habs davor so versucht:
Klasse 2 heisst ja bei mir ReadFromFile und enthält die Methode Lesen() die String dateiname erwartet. also:
Code java:1 2
ReadFromFile myReadFromFile = new ReadFromFile(); myReadFromFile.lesen(dateiname);
das ist doch korrekt so oder nicht
Grund 1 warum er meckert ist weil er mir sagt dass die ReadFromFile Methode lesen() static ist
Grund 2 ist dass die Exceptions nicht abgefangen werden
das ist jedenfalls was mir eclips anzeigtGeändert von Tis (09.09.10 um 12:08 Uhr)
-
09.09.10 12:04 #7
Moin,
Aha - aber ein Grottenschlechtes .....
Dann kann aber der Aufruf, so wie von Dir zuerst angeben nicht funktionieren ! ! !
Du muss diese Klasse importieren und instantiieren :
Code java:1 2 3 4
import ...<Pfad>.ReadFromFile; ... ReadFromFile meinObjektZumEinlesen = new ReadFromFile(); // hier erstellst Du das lokale Objekt ... meinObjektZumEinlesen.lesen( dn ); // ... dessen Methode 'lesen' Du dann ausführen kannst
Ohne Deinen gesamten Code kann das hier kaum nachvollzogen werden !
Und - sorry - aber lerne erst mal die Grundlagen der Sprache !!
Gruß
Klaus
EDIT:
Da haben sich unsere Posts wohl überschnitten ...
Grundsätzlich sehen Deine beiden Zeilen korrekt aus - vorausgesetzt, die Klasse "ReadFromFile" ist bekannt (also korrekt importiert worden) !!Geändert von vfl_freak (09.09.10 um 12:07 Uhr) Grund: EDIT !!
Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
moin ,
also ja sorry ich bin noch ein anfänger ich mache java seit eine woche aber das prinzip verstehe ich einigermaßen.
Das mit import sehe ich zum ersten mal ich dachte man muss klassen die man selbst erstellt hat importieren nur instanziieren
Alle Klassen liegen im selben packageCode java:1
import ...<Pfad>.ReadFromFile;
Ich kann auch den gesamten code posten dachte aber es wird sowieso keiner lesen
EDIT: so habs geschaft ich musste weil die methode Static ist es anders angehen
und ich musste die Exception die in der Klasse ist auch hier abfangen
Code java:1 2 3
//Beachte die Exceptions public class ReadFromFile{ public static void lesen(String dateiname) throws IOException, RowsExceededException, WriteException{
Code java:1 2 3 4 5 6 7 8 9 10
try { ReadFromFile.lesen(dt); } catch (RowsExceededException e1) { e1.printStackTrace(); } catch (WriteException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); }
Geändert von Tis (09.09.10 um 12:32 Uhr) Grund: EDIT
-
09.09.10 12:31 #9
Moin,
na ja ....
Äääh, bitte was
Ok, 'Pfad' ist vlt. nicht ganz glücklich ausgedrückt ...
Du musst hier die gesamte Bezeichnung des package angeben, in dem die Klasse befindet (es ist doch wohl eine eigene Quelldatei, oder ?)
Dies entspricht in der Regel auch der Verzeichnisstruktur im jeweiligen Workspace (kurz: Pfad
)
Beispiel:
Code java:1 2 3 4 5 6
package DirA.DirB.Irgendwas; public class ReadFromFile () { ... }
Dann lautet der Import in Deiner Hauptklasse, in der Du sie nutzen willst, so:
Code java:1
import DirA.DirB.Irgendwas.ReadFromFile;
Hier nochmal das zugehörige Kapitel:
http://openbook.galileocomputing.de/...bc7fe050eb60bc
Gruß
KlausGeändert von vfl_freak (09.09.10 um 12:33 Uhr) Grund: da waren ein paar Zeilen durcheinander ... :(
Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
Ähnliche Themen
-
MD5 Tool - Copy to Clipboard Probleme
Von MedRamBO im Forum C/C++Antworten: 2Letzter Beitrag: 31.08.08, 15:30 -
Probleme mit Move/Scale/Rotate Tool
Von michitschi im Forum Autodesk Maya (ehemals Alias)Antworten: 2Letzter Beitrag: 19.10.07, 20:10 -
"Rotate tool" macht Probleme
Von grashupfa im Forum Autodesk Maya (ehemals Alias)Antworten: 1Letzter Beitrag: 26.07.05, 12:07 -
mini mini Problemchen - zefix
Von Fexxx im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 26.04.05, 20:43 -
Probleme mit jar Tool
Von Mikma im Forum JavaAntworten: 12Letzter Beitrag: 17.01.05, 14:38





Zitieren

Login




