Sie sind auf Seite 1von 4

import java.awt.*; import java.io.*; import java.awt.print.

*; public class Arbeitsklasse implements Printable { private int derZeiger = 0; private int dieFeldgrsse = 100; public Datensatz[] dasDatenfeld = new Datensatz[dieFeldgrsse + 1]; public boolean delete() { int derZeiger2 = derZeiger; while (dasDatenfeld[derZeiger2] != null) { dasDatenfeld[derZeiger2] = dasDatenfeld[derZeiger2 + 1]; derZeiger2++; } if (derZeiger > 0 && dasDatenfeld[derZeiger] == null) { derZeiger--; } return true; } public void druckenDaten(NewJFrame aktFenster) { PrinterJob pJob = PrinterJob.getPrinterJob(); PageFormat defaultPF = pJob.defaultPage(); PageFormat pFormat = pJob.pageDialog(defaultPF); if (pFormat != defaultPF) { if (pJob.printDialog()) { try { pJob.setPrintable(this, pFormat); pJob.print(); } catch (PrinterException e) { NewJDialog msb = new NewJDialog(aktFenster, "Catch: Fehler bei Ausdruck!"); msb.setLocationRelativeTo(null); msb.setVisible(true); // ein Fehler... paperjam, no paper, ... } } else { NewJDialog msb = new NewJDialog(aktFenster, "Druckjob-Dialog abgebrochen!"); msb.setLocationRelativeTo(null); msb.setVisible(true); // hier nur um die Funktionalitt zu demonstrieren } } else { NewJDialog msb = new NewJDialog(aktFenster, "Format-Dialog abgebrochen!"); msb.setLocationRelativeTo(null); msb.setVisible(true); // hier nur um die Funktionalitt zu demonstrieren } } public Datensatz erstesElement() { derZeiger = 0; if (dasDatenfeld[derZeiger] == null) { return new Datensatz(); } else { return dasDatenfeld[derZeiger]; } } public boolean insert(Datensatz d) { if (dasDatenfeld[derZeiger] == null) { dasDatenfeld[derZeiger] = d; return true; } else { if (dasDatenfeld[dieFeldgrsse - 1] == null) { int derZeiger2 = dieFeldgrsse - 1; while (derZeiger2 > derZeiger) { dasDatenfeld[derZeiger2] = dasDatenfeld[derZeiger2 - 1]; derZeiger2--; } dasDatenfeld[derZeiger] = d; return true; } else { return false; } } } public void lesenDatei(NewJFrame aktFenster) {

String s; Datensatz d = new Datensatz(); BufferedReader file = null; FileDialog fDialog = new FileDialog(aktFenster, "Bitte Datei zum Lesen auswhlen!", FileDialog.LOAD); fDialog.setFile("*.txt"); fDialog.setDirectory("C:\\tmp\\"); fDialog.setVisible(true); if (fDialog.getFile() != null) { //es wurde nicht abgebrochen try { file = new BufferedReader(new FileReader(fDialog.getDirectory() + fDialog.getFile())); while ((s = file.readLine()) != null) { d = new Datensatz(s); insert(d); } } catch (IOException e) { NewJDialog msb = new NewJDialog(aktFenster, "Fehler beim Lesen der Datei!"); msb.setLocationRelativeTo(null); msb.setVisible(true); } finally { try { if (file != null) { file.close(); } } catch (IOException e) { } } } } public Datensatz letztesElement() { if (dasDatenfeld[derZeiger] != null) { while (dasDatenfeld[derZeiger + 1] != null) { derZeiger++; } return dasDatenfeld[derZeiger]; } else { return new Datensatz(); } } public Datensatz links() { if (derZeiger != 0) { derZeiger--; return dasDatenfeld[derZeiger]; } else { if (dasDatenfeld[derZeiger] == null) { return new Datensatz(); } else { return dasDatenfeld[0]; } } } public boolean modify(Datensatz d) { if (dasDatenfeld[derZeiger] != null) { dasDatenfeld[derZeiger] = d; return true; } else { return false; } } public int print(Graphics g, PageFormat pForm, int pageNo) throws PrinterException { int ret = PAGE_EXISTS; if (pageNo > 0) { ret = NO_SUCH_PAGE; } int z = 0; int xPos = ((int) pForm.getImageableX() + 2); int yPos = (int) pForm.getImageableY() + 12; int yd = 12; String s = null; while (dasDatenfeld[z] != null) { s = dasDatenfeld[z].toStringfuerDrucker(); int j = 0; int i = 0; while (s.length() != 0) { if (s.charAt(i) != '\t') {

i++; } else { String a = s.substring(0, i); switch (j) { case 0: { g.drawString(a, xPos, yPos); yPos += yd; break; } case 1: { g.drawString(a, xPos, yPos); yPos += yd; break; } case 2: { g.drawString(a, xPos, yPos); yPos += yd; break; } case 3: { g.drawString(a, xPos, yPos); yPos += yd; break; } case 4: { g.drawString(a, xPos, yPos); yPos += yd; break; } case 5: { g.drawString(a, xPos, yPos); yPos += yd; break; } } j++; s = s.substring(i + 1, s.length()); i = 0; } } z++; } return ret; } public Datensatz rechts() { if (dasDatenfeld[derZeiger] == null) { return new Datensatz(); } else { if (dasDatenfeld[derZeiger + 1] != null) { derZeiger++; } return dasDatenfeld[derZeiger]; } } public Datensatz refresh() { if (dasDatenfeld[derZeiger] == null) { return new Datensatz(); } else { return dasDatenfeld[derZeiger]; } } public void speichernDatei(NewJFrame aktFenster) { String s; int z = 0; //Hilfszeiger um das Feld zu durchlaufen BufferedWriter file = null; FileDialog fDialog = new FileDialog(aktFenster, "Bitte Datei zum Schreiben auswhlen!", FileDialog.SAVE); fDialog.setFile("*.txt"); fDialog.setDirectory("C:\\tmp\\"); fDialog.setVisible(true); if (fDialog.getFile() != null) { //es wurde nicht abgebrochen try { s = fDialog.getFile().toLowerCase(); if (s.indexOf(".txt") == -1) { s = s + ".txt"; } file = new BufferedWriter(new FileWriter(fDialog.getDirectory() + s));

while (dasDatenfeld[z] != null) { s = dasDatenfeld[z].toString() + "\r\n"; file.write(s); z++; } } catch (IOException e) { NewJDialog msb = new NewJDialog(aktFenster, "Fehler beim Erstellen der Datei!"); msb.setLocationRelativeTo(null); msb.setVisible(true); } finally { try { if (file != null) { file.close(); } } catch (IOException e) { } } } } }