String von einer an die andere Klasse übergeben?

Status
Nicht offen für weitere Antworten.
J

Java Beginner

Gast
Hallo Java Cracks

ich habe via JFileChooser den String eines XML files ermittelt. Ich möchte den String nun von der einen Klasse an die andere übergeben. In der zweiten Klasse (wo der String übergeben wird) möchte ich mit dem SAXBuilder das File verarbeiten.
Das Problem an der ganzen Geschichte ist, dass ich den String nicht von Klasse A nach Klasse B bringe? Wie funktioniert so etwas?

Besten Dank für Eure Hilfe....

Euer

Java Beginner
 

Leroy42

Top Contributor
ungefähr so

Code:
class Bearbeiter {
  ...
  public boolean bearbeiteDatei(String filename) {
    boolean erfolgreich = false;
    ...
    return erfolgreich;
  }
}

class Lieferant {
  ...
  public void chooseFile(...) {
    // Gerödel mit JFileChooser
   Bearbeiter worker = new Bearbeiter();
  if (worker.bearbeiteDatei(filename)
  ...
  }
}
 
J

Java Beginner

Gast
Hallo Leroy

Besten Dank für Deine Antwort. Leider schnalle ich das ganze immer noch nicht richtig. Was macht das return eigentlich genau und wieso setzt Du das dort ein?

Ist es korrekt das Du den Filenamen von einer Klasse in die andere mittels diesem Tag übergibst?

public boolean bearbeiteDatei(String filename)

Kannst Du mir das Prinzip deines Codes kurz erläutern, das würde mir sehr sehr viel bringen. Besten Dank

Euer Newbie...
 
M

mambo

Gast
Code:
public boolean bearbeiteDatei(String filename) {
    boolean erfolgreich = false;
    ...
    return erfolgreich;
  }

Das ist die Methode der Klasse Bearbeiter, die du ja in einem if block der Klasse Liefrant aufrufst.
Deshalb das return, am Ende der Methode. Ein if block brauch ja schließlich ein true um in den Block zu springen.


Zum verstehen guck dir diesen Code an !!! Hoffe ist korrekt :lol:
Kannst es z.B. auch so machen, nur weißt du jetzt nicht ob das Bearbeiten in der Methode erfolgreich war oder nicht!

Code:
class Bearbeiter {
  ...
  public boolean bearbeiteDatei(String filename) {
    
    ...
   
  }
}

class Lieferant {
  ...
  public void chooseFile(...) {
    // Gerödel mit JFileChooser
   Bearbeiter worker = new Bearbeiter(); // Objekt der anderen Klasse erzeugen
   worker.bearbeiteDatei(filename) // Methodenaufruf
    ...
  }
}
 
M

Mambo

Gast
Code:
public void bearbeiteDatei(String filename) {
    ...
  }

Ups dann natürlich void
 
G

Guest

Gast
Hallo Leute

kann mir denn niemand mit meinem Problem helfen?

Was mache ich falsch?

Hier noch einmal der Code:

Code:
ackage FahrplanXML;

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

import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;

import org.jdom.Document;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;

public class FileAuswahl {


public boolean FileAuswaehlen(String files) {

JFileChooser datei = new JFileChooser();
datei.setFileFilter(new FileFilter()
{
@Override public boolean accept (File f)
{
return f.isDirectory() ||
f.getName().toLowerCase().endsWith(".xml");
}
@Override public String getDescription()
{
return "XML-Files";
}
} );

int state = datei.showOpenDialog(null);

if (state == JFileChooser.APPROVE_OPTION )
{
String files = datei.getSelectedFile();
System.out.println(files.getName());
System.out.println(files);
}
else
System.out.println("Auswahl abgebrochen");
System.exit(0);
}

}

Zweite Klasse:

Code:
package FahrplanXML;

import java.io.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
import org.jdom.transform.*;
import org.jdom.adapters.*;


public class FileVerarbeiten

{

public void saxwer() {

FileAuswahl filename = new FileAuswahl();
filename.FileAuswaehlen(String files);

SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(files);

}

}

Ich weiss nicht weshalb es nicht funktioniert.

Folgende Tags zeigen mir einen Fehler an:
In Klasse eins:

String files = datei.getSelectedFile();
System.out.println(files.getName());

In Klasse zwei:

filename.FileAuswaehlen(String files);

Wo liegt wohl das Problem genau? Was mache ich falsch?

Besten Dank für Eure Hilfe...

Euer Beginner
 
B

Beni

Gast
"getSelectedFiles" liefert einen Array von Files, keinen String (steht übrigens in der API...).

Ergo:
Code:
File[] files = date.getSelectedFile();
for( File file : files )
  System.out.println( file.getName() );
 

Leroy42

Top Contributor
Und für die Zukunft:

Folgende Tags zeigen mir einen Fehler an:

[schild=3 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Fehlermeldungen posten![/schild]

Und wenn es nicht allzuviel Mühe bereitet:
[schild=5 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Lies die Fehlermeldungen![/schild]
Die sind nämlich nicht nur dafür da, deinen Monitor auf Trab zu halten. :cool:
 

Onkel Hatti

Bekanntes Mitglied
Moinsen

Hmmm, sieht komisch aus.

In der Klasse, die die Verarbeitung machen soll, übergibst du der Klasse, die die datei laden soll, einen String.
Code:
filename.FileAuswaehlen(String files);

Diese Variable ist lokal, also nur für die aktuelle Methode gültig.

Diese Variable wird in der aufgerufenen Mathode wiederum lokal

Code:
public boolean FileAuswaehlen(String files)...

Und lokal nicht verändert, weil du einen Block definierst, in dem du diese Variabe erneut definierst

Code:
if (state == JFileChooser.APPROVE_OPTION )
{
String files = datei.getSelectedFile();
System.out.println(files.getName());
System.out.println(files);
}

Am Ende hast du also drei Variablen, die alle gleich heissen und miteinander nix zu tun haben.

Vielleicht besser:

Code:
package FahrplanXML;

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

import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;

import org.jdom.Document;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;

public class FileAuswahl {

private String filenames;

public boolean FileAuswaehlen() {

JFileChooser datei = new JFileChooser();
datei.setFileFilter(new FileFilter()
{
@Override public boolean accept (File f)
{
return f.isDirectory() ||
f.getName().toLowerCase().endsWith(".xml");
}
@Override public String getDescription()
{
return "XML-Files";
}
} );

int state = datei.showOpenDialog(null);

if (state == JFileChooser.APPROVE_OPTION )
{
filenames = datei.getSelectedFile();
}
else
System.out.println("Auswahl abgebrochen");
System.exit(0);
}

public String getFileNames()
{
return this.filenames;
}

}



Zweite Klasse:


package FahrplanXML;

import java.io.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
import org.jdom.transform.*;
import org.jdom.adapters.*;


public class FileVerarbeiten

{

public void saxwer() {

FileAuswahl filename = new FileAuswahl();
filename.FileAuswaehlen();
files=filename.getFileNames();

SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(files);

}

}
[/code]
 
G

Guest

Gast
Hallo Leute

Ich bin es mal wieder, ich habe versucht eure Ideen umzusetzen. Leider bin ich nicht sehr viel weiter gekommen. Ich rufe nun aus der Klasse FileAuswahl, die Methode "FileAuswaehlen" auf, sobald diese ein File hat, möchte ich die Methode "saxwer" aufrufen, welche dann die Methofe "GetNames" aufruft, die mir dann das File aus "FileAuswaehlen" in die Methode "saxwer" zurückliefern soll.
Leider wird nur "null" in die Methode "GetNames" geliefert anschliessend erscheint folgende Fehlermeldung;

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at org.jdom.input.SAXBuilder.fileToURL(SAXBuilder.java:925)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:788)
at FahrplanXML.FileAuswahl.saxwer(FileAuswahl.java:83)
at FahrplanXML.FileAuswahl.FileAuswaehlen(FileAuswahl.java:50)
at FahrplanXML.grundoberflaeche$1.actionPerformed(grundoberflaeche.java:78)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(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)

Hier noch einmal der Code:

Code:
package FahrplanXML;

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

import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;

import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;

public class FileAuswahl {
	
	private File filenames;
	
	public void FileAuswaehlen() {
		
	JFileChooser datei = new JFileChooser();
	datei.setFileFilter(new FileFilter()
			{
				@Override public boolean accept (File f)
				{
					return f.isDirectory() || 
					f.getName().toLowerCase().endsWith(".xml");
				}
				@Override public String getDescription()
				{
					return "XML-Files";
				}
			} );
	
	int state = datei.showOpenDialog(null);
	
	if (state == JFileChooser.APPROVE_OPTION )
	{
		filenames = datei.getSelectedFile();
		System.out.println (filenames);
		
		if (filenames != null)
		{
			
				
					
					try {
						System.out.print(filenames);
						saxwer();
					} catch (JDOMException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				
			
		}
		else
		{
			System.out.println("Kein File");
		}
	
	
	}

	else 
	
	System.out.println("Auswahl abgebrochen");
	System.exit(0);
	}	
	
	
	public void saxwer() throws JDOMException, IOException {

		FileAuswahl filename = new FileAuswahl();
		File files = filename.getNames();
		System.out.println (files);
		
			SAXBuilder builder = new SAXBuilder();
			Document doc = builder.build(files);
			
			Element schedulemessage = doc.getRootElement();
			
			Element messageidentification = schedulemessage.getChild("MessageIdentification");
			Attribute messageidentificationwert = schedulemessage.getAttribute("MessageIdentification");
			
			System.out.println(messageidentificationwert);
			
		}	

	
	public File getNames() {
		System.out.println (filenames);
		return this.filenames;
	}
	
	
	
	
	
}

Ich danke für die Hilfe.....
 

Onkel Hatti

Bekanntes Mitglied
Moinsen

Hmm, die Klasse ist natürlich nicht vollständig, aber was solls.
In Zeile 79 erstellst du eine Instanz der Klasse FileAuswahl.
Soweit OK.
In Zeile 80 rufst du die Methode getNames() auf.
Nur, wo rufst du die Methode FileAuswaehlen auf? Ich habs nicht gesehen.
Damit enthält filenames natürlich den Initialisierungswert Null,
der dir dann in der Zeile 84 die NullPointerException wirft.

Die Methode saxwer ist bereits Methode der Klasse FileAuswahl.
Warum schreibst du in dieser Methode ...= new FileAuswahl() ?
Du hast ja gar keinen Konstruktor, oder ist der nur nicht im
abgedruckten Code zu sehen?

Gruß
Hatti
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Wert einer String Variable an andere String Variable in anderer Klasse uebergeben Java Basics - Anfänger-Themen 5
H String aus einer Klasse in die andere ! Java Basics - Anfänger-Themen 9
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
S Gesamten String in einer Zeile ausgeben Java Basics - Anfänger-Themen 2
J String Problem kann das einer erklären Java Basics - Anfänger-Themen 13
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
geekex Double zu String umwandeln in einer Methode Java Basics - Anfänger-Themen 28
J String splitten und weiter einarbeiten in einer Methode? Java Basics - Anfänger-Themen 11
Alex/89 String in einer txt ersetzen Java Basics - Anfänger-Themen 15
W String in einer Zeile mit Alphabet füllen? Java Basics - Anfänger-Themen 8
OlafHD String in einer If-Anweisung Vergleichen Java Basics - Anfänger-Themen 2
A Folgende Nullen einer Kommazahl aus String entfernen Java Basics - Anfänger-Themen 3
S Datentypen Mit einer Methode String arrays geben Java Basics - Anfänger-Themen 9
B ja ja schon wieder einer mit einer public static void main(string[] args) Frage... Java Basics - Anfänger-Themen 8
A Variablen Übergeben des Inhalts einer Variable in einen String Java Basics - Anfänger-Themen 17
J Int Array und String in einer neuen Methoder übergeben Java Basics - Anfänger-Themen 7
G Teil einer String speichern Java Basics - Anfänger-Themen 4
D Name einer Variable als String nutzen Java Basics - Anfänger-Themen 13
J Einem String-Array in einer for-Schleife Strings zuweisen - Klappt nicht in einer for-Schleife Java Basics - Anfänger-Themen 5
L Aus einer String Variablen ein Objekt erstellen Java Basics - Anfänger-Themen 14
L Problem beim Einlesen einer Datei in einen String Java Basics - Anfänger-Themen 12
H string zu einer Gleitkommazahl zusammenführen Java Basics - Anfänger-Themen 20
F ComboBox sowie String in einer JTable Spalte Java Basics - Anfänger-Themen 2
T String aus einer ArrayList suchen Java Basics - Anfänger-Themen 7
D Datentypen TreeSet aus einer List<String[]> befüllen Java Basics - Anfänger-Themen 18
Burny91 FileReader / FileWriter / BufferedWriter An einer bestimmten Zeile String ersetzten Java Basics - Anfänger-Themen 2
vandread Kann in einer String-ArrayList keine Zeichen anhängen Java Basics - Anfänger-Themen 5
S Datentypen String mit fester Länge (Rückgabewert einer Methode) Java Basics - Anfänger-Themen 2
H String in Methode einer anderen Klasse übergeben Java Basics - Anfänger-Themen 5
Z Kann man String[] in einer ArrayList verwenden? Java Basics - Anfänger-Themen 3
Developer_X jede Zeile einer Datei mit einem String verketten Java Basics - Anfänger-Themen 16
A String[] array in vertikale Spalte einer JTable ausgeben? Java Basics - Anfänger-Themen 8
M String nach einer bestimmten Anzahl von Zeichen trennen Java Basics - Anfänger-Themen 2
H String an Ende einer text File anhängen Java Basics - Anfänger-Themen 2
T charAt funktion mit einer string zeichenkette nutzen. WIE? Java Basics - Anfänger-Themen 13
F Kann man den Namen einer Variable in ein String Konvertieren Java Basics - Anfänger-Themen 2
B Position einer Ziffer im String bestimmen Java Basics - Anfänger-Themen 4
D String/StringBuffer mit Zeichen einer Sorte füllen Java Basics - Anfänger-Themen 14
N Ausgabe des Inhalts eines String Arrays in einer ArrayList Java Basics - Anfänger-Themen 4
J Lesen einer Datei in einen String oder Char? Java Basics - Anfänger-Themen 3
T In einer HashMap einen String löschen Java Basics - Anfänger-Themen 20
A String Zeichen löschen in einer bestimmten Reihenfolge Java Basics - Anfänger-Themen 25
A String von einer Klasse in die ander zu bringen Java Basics - Anfänger-Themen 10
R in einem string nach einer zahl suchen und auslesen...... Java Basics - Anfänger-Themen 3
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
D String Groß/Kleinschreibung Ignorieren Java Basics - Anfänger-Themen 4
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
Kartoffel_1 String transformation Java Basics - Anfänger-Themen 7
H String-Operation replace() - Zeichenkette verdoppeln Java Basics - Anfänger-Themen 2
K String analysieren Java Basics - Anfänger-Themen 27
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
Beowend String auf Satzzeichen überprüfen? Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
I Sass Compiler und String erhalten? Java Basics - Anfänger-Themen 7
Avalon String in Double bzw. Währung konvertieren Java Basics - Anfänger-Themen 6
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
N String überprüfen Java Basics - Anfänger-Themen 3
E String zerlegen aus args Java Basics - Anfänger-Themen 1
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
J String Filter Java Basics - Anfänger-Themen 5
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D 2D Char Array into String Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
I Zerlegen von String Java Basics - Anfänger-Themen 3
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
I String Java Basics - Anfänger-Themen 4
I API - zurückgegebener JSON String lesen und in Entity konvertieren Java Basics - Anfänger-Themen 2
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
HolyFUT Input/Output Leerzeichen aus String entfernen - klappt nicht! Java Basics - Anfänger-Themen 13
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
Alen123 String wiederholen mit Schleifen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben