Übertragen von Wert von einer Klasse zu einer anderen

youngster

Aktives Mitglied
Hallo,
ich habe in einem Packet zwei Klassen: xls_reader und ppt_writer. Beide Klassen arbeiten perfekt wie gewollt (Code siehe unten). Meine 2 Probleme:

1. Ich bin jedoch nicht damit vertraut, wie ich den Wert von xls_reader-Zeile 28/29 (siehe unten) an die Klasse ppt_writer übertragen kann.
2. Wie stelle ich sicher, dass erst die xls_reader läuft, sodass ich auch einen Inhalt für die Übertragung habe

Übergeben werden soll ein String.
Was ich kenne ist, dass ich sowas 'in der Art' wie public void read (string xls_content) und dann in der letzten Zeile ein return xls_content - sicher bin ich mir hier jedoch nicht.
Danke für die konktrete Hilfe.
Gruss
Youngster

Excel Information aus Zelle 1, 1 lesen:
Java:
package XLStoPPT;

import java.io.File;
import java.io.IOException;

import jxl.Cell;
import jxl.CellType;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class xls_reader {

		private String inputFile;

		public void setInputFile(String inputFile) {
			this.inputFile = inputFile;
		}

		public void read() throws IOException  {
			File inputWorkbook = new File(inputFile);
			Workbook w;
			try {
				w = Workbook.getWorkbook(inputWorkbook);
				// Get the first sheet
				Sheet sheet = w.getSheet(0);
				// Go to Cell 1,1 to collect content
						Cell cell = sheet.getCell(0, 0);
						System.out.println(cell.getContents());
			} // close try
		 catch (BiffException e) {
				e.printStackTrace();
			} // close catch
		} // close public

		public static void main(String[] args) throws IOException {
			xls_reader test = new xls_reader();
			test.setInputFile("I:/JavaProgram/test.xls");
			test.read();
		}
	}

Text in PowerPoint schreiben

Java:
package XLStoPPT;

import org.apache.poi.hslf.usermodel.*;
import org.apache.poi.hslf.model.*;
import org.apache.poi.hslf.record.TextHeaderAtom;

import java.io.IOException;
import java.io.FileOutputStream;
// import java.io.File; currently not in use
import java.awt.*;

public final class ppt_writer {

    public static void main(String[] args) throws IOException {
        SlideShow ppt = new SlideShow();
        ppt.setPageSize(new Dimension(720, 540));

        slide1(ppt);

        FileOutputStream out = new FileOutputStream("Test-01.ppt");
        ppt.write(out);
        out.close();

    }

    public static void slide1(SlideShow ppt) throws IOException {
        Slide slide = ppt.createSlide();

        TextBox box1 = new TextBox();
        TextRun tr1 = box1.getTextRun();
        tr1.setRunType(TextHeaderAtom.CENTER_TITLE_TYPE);
        tr1.setText("Test-01");
        box1.setAnchor(new Rectangle(54, 78, 612, 115));
        slide.addShape(box1);

    }
}
 
Naja, die read-Methode sollte sinnvoller Weise auch etwas zurückliefern. Nämlich das, was gelesen wurde. Ob String für eine Tabelle passend ist, ist natürlich fraglich.
Und um sicher zu stellen, dass zuerst gelesen wird und dann geschrieben musst du zuerst lesen und dann schreiben :bahnhof:
Java:
String s = reader.read();
writer.write(s);

P.S. Alle deine Codeschnippsel sahen so aus, als ob du die aus verschiedenen Quellen einfach nur irgendwie irgendwohin kopiert hast, ohne die wirklich verstanden zu haben. So wird das natürlich nicht funktionieren. Du solltest dir mal Grundlagen anschauen.
 
... und Konventionen:
[c]xls_reader[/c] Klassen schreibt man UpperCamelCase: [c]XlsReader[/c]
 
Hallo,

Programmier zwar selber noch nicht solang in Java, aber ich denke du willst Parameter übergeben per value. z.B:

main.java
Java:
int variableInMain = 1;
test.machWas(variableInMain);

test.java
Java:
public void machWas (int variablenNamefuerKlasseTest)
{
   System.out.println("variablenNamefuerKlasseTest")
}

Wenn deine Methode "Void" ist wird kein Rückgabewert erwartet, wenn du etwas zurückgeben willst musst du statt void den Datantyp einsetzten und am Ende "return variable;" schreiben. (Muss der passende Datentyp wie am Anfang, also statt void, sein!)
Eclipse hilft dir hier so oder so weiter!
Ich hoffe der Beispielcode ist richtig, wenn nicht bitte ausbessern, aber wie gesagt ich mache selbst erst meine ersten Schritte!
 

Zurück
Oben