Variablen Wie Variable verfügbar machen?

marian04

Aktives Mitglied
Hallo Leute,

ich muss euch mal wieder was fragen, da ich keinen einzigen Schritt weiter komme :

Ich habe folgenden Code ( gekürzt):

Code:
 private void button2ActionPerformed(java.awt.event.ActionEvent evt) {
	  
	  
	  jp1.remove(textLabel1);
	  lese_Datei();
	  
	
	  
  }
  

  
 public void lese_Datei(){
		
		  
		try {
			BufferedReader in = new BufferedReader(new FileReader("C:\\Users\\schneiderm\\Desktop\\test.log"));
			String line;
			
			x= RGen.nextInt(10);
			
			
			for(int i=1;i<x;i++) 
			{     
				line = in.readLine();
                String[] splittArray = line.split("\\.");
			    textLabel.setText(splittArray[0]);
	            textLabel1.setText(splittArray[1]);
	             }
			 in.close();
	    } catch (IOException e) {
	      System.out.println("Fehler beim Lesen der Datei");
	   }
		
	  }

Nun wollte ich die beiden Teile des SplittArrays im Actionlistener nutzen.
Geht aber leider nicht.
Eclipse wirft mir dann ständig Fehler aus, mit denen ich nichts anfangen kann.

Also kam ich dann auf die Idee, dass eine void Funktion keinen Rückgabewert leifert ich aber gerne die Teile des Arrays als Rückgabewert hätte.
Aber leider komme ich mit

Code:
public String lese_Datei(){	
	try {
			BufferedReader in = new BufferedReader(new FileReader("C:\\Users\\schneiderm\\Desktop\\test.log"));
			String line;
			
			x= RGen.nextInt(10);
			
			
			for(int i=1;i<x;i++) 
			{     
				line = in.readLine();
                String[] splittArray = line.split("\\.");
			    textLabel.setText(splittArray[0]);
	            textLabel1.setText(splittArray[1]);
	             }
			 in.close();
	    } catch (IOException e) {
	      System.out.println("Fehler beim Lesen der Datei");
	   }
		return splittArray[0];
	  }

Dann bekomme ich den Fehler, dass splittArray[0] auf keine Variable zurückzuführen ist.

Kann mir jemand sagen, was ich falsch mache ?


Liebe Grüße
 

Mofi

Bekanntes Mitglied
Du musst das array splittArray VOR dem try-catch block deklarieren.
Variablen eine Lebensdauer und das return steht an einer Stelle wo dein Array nicht mehr "lebt" bzw einfach nicht mehr vorhanden ist. Daher musst du es vorher deklarieren (vor try-catch) damit es beim return noch vorhanden ist.
 
C

Camino

Gast
Du musst String[] splittArray am Anfang der Methode deklarieren, damit die Variable auch für die ganze Methode verfügbar ist.

Java:
public String lese_Datei(){	

       String[] splittArray;

	try {
			BufferedReader in = new BufferedReader(new FileReader("C:\\Users\\schneiderm\\Desktop\\test.log"));
			String line;
			
			x= RGen.nextInt(10);
			
			
			for(int i=1;i<x;i++) 
			{     
				line = in.readLine();
                splittArray = line.split("\\.");
			    textLabel.setText(splittArray[0]);
	            textLabel1.setText(splittArray[1]);
	             }
			 in.close();
	    } catch (IOException e) {
	      System.out.println("Fehler beim Lesen der Datei");
	   }
		return splittArray[0];
	  }

EDIT: Grrr, war zu langsam...
 

marian04

Aktives Mitglied
Code:
public String lese_Datei(){ 
 
       String[] splittArray;
 
    try {
            BufferedReader in = new BufferedReader(new FileReader("C:\\Users\\schneiderm\\Desktop\\test.log"));
            String line;
            
            x= RGen.nextInt(10);
            
            
            for(int i=1;i<x;i++) 
            {     
                line = in.readLine();
                splittArray = line.split("\\.");
                textLabel.setText(splittArray[0]);
                textLabel1.setText(splittArray[1]);
                 }
             in.close();
        } catch (IOException e) {
          System.out.println("Fehler beim Lesen der Datei");
       }
        return splittArray[0];
      }

Führt bei mir wieder zu folgenden Fehlermeldungen :
1. the local variable splittArray may not have been initialized

Und im ActionListener ein paar zeilen oben drüber :
2.Cannot resolved to a variable

;(
 

Mofi

Bekanntes Mitglied
Code:
String[] splittArray = null;
Versuch es mal so, dann sollte er hoffentlich nicht mehr meckern.
Das Problem hier ist einfach, dass der Compiler es nicht mag, wenn man lokale Variablen nicht initialisiert. Aber oft weiß man am Anfang nicht was rein soll bzw. kann man sie erst im try-catch-Block füllen...Daher muss man dass dann halt so lösen (einfach ein Standartwert nehmen der später eh überschrieben wird)

Wobei ich sagen muss, dass ich nicht weiß ob er hier einfach [c]null[/c] akzepiert, aber irgendwas musst du ihm zuweisen.

Und deine zweite Frage kann ich grad nicht nachvollziehen? (Code evtl?)
 

marian04

Aktives Mitglied
Bleibt immernoch der Fehler im Anhang, haeb der einfachheit halber mal ein Screenshot davon gemacht
 

Anhänge

  • Fehler.jpg
    Fehler.jpg
    51,7 KB · Aufrufe: 31

Mofi

Bekanntes Mitglied
ah...
Das musst du anders schreiben in den ActionListener:
Java:
String text = lese_Datei();

Und dann kannst du mit dem String machen was du willst. Wenn du den Rückgabewert einer Methode benutzen willst musst du ihn auch in einer Variable speichern :)
 

marian04

Aktives Mitglied
Ah Okay,

ist es auch möglich beide Werte zurück zu geben ?

Code:
....
return splittArray[0];
return splittArray[1];
....

Führt bei mir nicht gerade zu Erfolgen, sondern mal wieder zu einem Fehler :'(
 
G

Gast2

Gast
Du kannst nur einen Wert zurückgeben.
Gib doch statt dem String ein String[] zurück wenn du alle Werte brauchst.
 

Mofi

Bekanntes Mitglied
Es geht so auch nicht
Aber du könntest das komplette Array zurückgeben
Java:
//ActionListener
public void actionPerformed(ActionEvent ae){
String[] str = lese_Datei();

//Was auch immer du damit vorhast
}


public String[] lese_Datei(){
String[] array = ...
...

return array;
}

So grob gesehen :) Hoffe das hilft, wollt nicht so viel Code schreiben ^^
 
Zuletzt bearbeitet:

BlackViruZ

Aktives Mitglied
Natürlich führt dass zu Fehlern, du solltest dich vielleicht ein bisschen mit der Java Syntax und den Grundlagen beschäftigen.
Eine Methode hat bei Java immer keinen oder EINEN rückgabewert.
Willst du in dem Fall beides zurückgeben könntest du beispielsweise einfach das Array zurückgeben welches du vom Split befehl bekommst......
Es gibt noch weitere Möglichkeiten, sind aber zuviele um alle jetzt zu erläutern..

#EDIT:
Ich seh schon ich war zu langsam ^_^


Aber du solltest dir wirklich definitiv nochmal die Grundlagen zu Gemüte führen
 
C

Camino

Gast
Nö, geht nur 1 return. Kannst aber auch splitArray zurückgeben und das dann danach wieder auseinandernehmen.
 

xerberuz

Bekanntes Mitglied
Es ist keine gute IDee das Array mit null zu initialisieren und dann per index darauf zu arbeiten. Die Rückgabe des arrays gehört in den try Block. Am Ende der Methode kannst du im Fehlerfall null zurückgeben. Oder die Exception weiterwerfen.

Du kannst nicht 2 Strings zurückgeben. Allerdings könntest du die Methode umbauen um das ganze Array zurückzugeben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Variable auch in der function verfügbar machen? Allgemeine Java-Themen 4
W Variable Initialisierung mit dem Ergebnis einer Regex Allgemeine Java-Themen 1
A Clean Code: Variable vs. Methode Allgemeine Java-Themen 8
J Wo kommt der Wert der Variable her ? Allgemeine Java-Themen 6
E Variablen Nach Übergabe einer Variable den Constructor aufrufen Allgemeine Java-Themen 16
H lokale Variable bei Optional verwenden Allgemeine Java-Themen 11
A Variable in if initialisieren Allgemeine Java-Themen 23
S Variable als Objekt Name Allgemeine Java-Themen 3
D "Automatisierte", variable verschachtele for-Schleife Allgemeine Java-Themen 9
T statische Variable und nicht-statische Methode Allgemeine Java-Themen 2
P Variable wird in for - loop nicht richtig hochgezählt Allgemeine Java-Themen 11
A Variablen non-static variable cannot be referenced from a static content Allgemeine Java-Themen 4
A Variable, welche Exeption wirft als "Global" deklarieren Allgemeine Java-Themen 13
A Scanner Variable Klassenimtern deklarieren Allgemeine Java-Themen 12
L Variablen Variable nicht aktualisiert Allgemeine Java-Themen 3
denny86 NetBeans Ordnernamen rekursiv auslesen und in Variable verarbeiten Allgemeine Java-Themen 38
R Variable durch mehrere Methoden ändern und nutzen Allgemeine Java-Themen 17
P Static Variable -> unterschiedliche Werte? Allgemeine Java-Themen 1
C Abstrakte Klasse, lokale Variable-Problem Allgemeine Java-Themen 1
T AWT AWT-EventQueue-0 Null_Pointer_Exception durch Variable Allgemeine Java-Themen 12
M Variable ändern bei jedem Schleifendurchlauf Allgemeine Java-Themen 32
F Wert in Variable schreiben, wenn diese gerade genutzt wird Allgemeine Java-Themen 10
P Prüfen ob es Variable mit Namen gibt der als String übergeben wird Allgemeine Java-Themen 7
S JFrame Variable mitgeben Allgemeine Java-Themen 5
M Variable außerhalb Klasse definierbar? Allgemeine Java-Themen 2
X Bild -> lokale Variable -> DB -> lokale Variable Allgemeine Java-Themen 3
F Aktuelle Variable Allgemeine Java-Themen 2
J String Variable verändert sich plötzlich Allgemeine Java-Themen 8
J private static final String variable Allgemeine Java-Themen 8
A Long variable wird negativ??? Allgemeine Java-Themen 1
reibi Classpath Classpath Variable beim Tomcat Allgemeine Java-Themen 2
M Zeiger auf statische Variable Allgemeine Java-Themen 1
H Klassennamen zum Aufruf eines statischen Feldes aus Variable holen Allgemeine Java-Themen 4
F Variable übergeben?! Allgemeine Java-Themen 2
M Collections Typ Variable einer generischen Collection ? Allgemeine Java-Themen 4
P Variablen Variable von void im ActionListener verwenden Allgemeine Java-Themen 3
M Parallele Programmierung: volatile Variable nimmt ungewöhnlichen Wert an Allgemeine Java-Themen 3
iB0T Variable Wert ausrauchen Allgemeine Java-Themen 3
T Variablen Variable wird als nicht genutzt angezeigt Allgemeine Java-Themen 8
S Datentypen Eine Variable von String zu Int ändern Allgemeine Java-Themen 5
Hoppelmann "Variable" in String erkennen Allgemeine Java-Themen 2
B Variable class in java.lang.Object Allgemeine Java-Themen 11
O Variablen Originalname einer übergebenen Variable prüfen Allgemeine Java-Themen 9
X Windows-Environment-Variable per jRegistryKey anpassen Allgemeine Java-Themen 6
P Variable in Array stellen Allgemeine Java-Themen 11
M Arraynamen durch Variable festlegen lassen Allgemeine Java-Themen 5
J Anderem Thread Variable mitgeben Allgemeine Java-Themen 2
nrg Auszulagernder Part, der aber variable Methode/Klasse aufruft Allgemeine Java-Themen 7
I %AppData% Variable für einen Prozess setzen Allgemeine Java-Themen 23
G Variablen Variable extern speichern - wie? Allgemeine Java-Themen 9
A variable aus einer anderen klasse verändern Allgemeine Java-Themen 5
G Variable Methodenwahl Allgemeine Java-Themen 11
C JFormattedTextField Inhalt einer Variable zuweisen Allgemeine Java-Themen 11
C Variablen Variable einer Klasse in einer anderen Klasse Nutzen Allgemeine Java-Themen 8
B Umgebungsvariable Variable wird nicht übernommen Allgemeine Java-Themen 4
N variable Anzahl von Objektinstanzen zur Laufzeit erstellen Allgemeine Java-Themen 4
C Environment Variable in Pfad -> Datei öffnen Allgemeine Java-Themen 5
Q Variable aus Schleife/Switch benutzen Allgemeine Java-Themen 7
algorismi int-variable Value Change event Allgemeine Java-Themen 3
E Variable dynamisch ausgeben Allgemeine Java-Themen 5
trash super() mit Variable bestücken Allgemeine Java-Themen 3
X Cannot refer to a non-final variable settings inside an inner class defined in a different method Allgemeine Java-Themen 4
A Variable Parameterinhalte an einen Query übergeben? Allgemeine Java-Themen 3
B static Variable / Unterklasse Allgemeine Java-Themen 2
J Was ist schneller? Neue Variable oder neuer Wert speziell int Allgemeine Java-Themen 3
S Innere Klasse: Zugriff auf äußere Variable Allgemeine Java-Themen 5
Semox Fehler - Zuweisung aus BufferedReader an Variable Allgemeine Java-Themen 3
Daniel_L RegEx - variable Vorkommen ersetzen? Allgemeine Java-Themen 5
P Unicode-Sequenz (u1234) in Variable speichern und ausgeben Allgemeine Java-Themen 6
G auf variable in anderer class zugreifen Allgemeine Java-Themen 2
G Variable global nutzen Allgemeine Java-Themen 4
V Variable vom Typ String zum Typen "Message" konve Allgemeine Java-Themen 2
J in einer static Variable Wert ändern Allgemeine Java-Themen 6
M Try-Catch: wie wird Variable bei Exception initialisiert? Allgemeine Java-Themen 8
G Speicherverbrauch einer Variable Allgemeine Java-Themen 2
C ArrayList mit Variable im Namen Allgemeine Java-Themen 16
T JNI Referenz auf Variable in Java? Allgemeine Java-Themen 2
G Überprüfen, ob Variable ein Array ist? Allgemeine Java-Themen 5
R Member-Variable erzwingen Allgemeine Java-Themen 17
D LinkedList anhand einer long-Variable der Objekte sortieren Allgemeine Java-Themen 5
M Zugriff auf Objekt, Name in Variable Allgemeine Java-Themen 3
G Problem mit einer Variable Allgemeine Java-Themen 3
O Future Variable Allgemeine Java-Themen 4
M variable übergeben NICHT KOPIEREN Allgemeine Java-Themen 12
loadbrain KeyEvent mit Variable verknüpfen Allgemeine Java-Themen 4
M Prüfen ob Variable vorhanden / initalisiert ist Allgemeine Java-Themen 4
G Variable wird ignoriert - warum ? Allgemeine Java-Themen 36
L ctrl-z wird nicht in Variable gespeichert Allgemeine Java-Themen 4
G Variable Anzahl JTextfleder Allgemeine Java-Themen 3
R Wenn Variable = wat ist Allgemeine Java-Themen 7
H Zugriff auf statische Variable synchronisieren Allgemeine Java-Themen 4
H globale Variable wird nicht überall erkannt Allgemeine Java-Themen 3
G Zugriff auf Variable in abgeleiteter Klasse Allgemeine Java-Themen 6
R Eine Variable an eine Methode mit Array übergeben Allgemeine Java-Themen 7
E Variable in einer Methode Allgemeine Java-Themen 13
O Environment Variable Setzen Allgemeine Java-Themen 2
G Referenz auf Variable! Allgemeine Java-Themen 3
C Variable aus einer Methode einlesen in einer verarbeiten und Allgemeine Java-Themen 6
G 1.5er String.format() -> variable Feldlaenge? Allgemeine Java-Themen 5
S wie übergebe ich eine Variable aus einer Methode an main() ? Allgemeine Java-Themen 16

Ähnliche Java Themen

Neue Themen


Oben