# Java Fehlermeldungen



## Zandalor (9. Jan 2013)

Hi Leute,
eine freundin hat ein Problem mit einem Code aber kein Internet. Deswegen schreibe ich hier. Nehmt bitte ein klein wenig rücksicht auf mich, denn ich habe eigentlich keine ahnung denke ich.

Also, ich schreibe mal ab was sie als Aufgabe aufgeschrieben hat und danach 2 Codes

Java Gui

- Methoden d. JComboBox
- Methoden d. JLabel

Wie schaffe ich mit Hilfe d. JComboBox oder JLabel Wagons auf Gleisen hin un her zu verschieben

Programmiert mit Java Editor

Das hat sie mir original auf den Zettel geschrieben.

Sie hat in dem Projekt Ordner 2 Dateien. 1 mal Bahnhofneu.java und einmal Stackneu.java

Bahnhofneu.java


```
class Bahnhofneu
{
  private Stack[]gleise;
  String Wagon1;
  String Wagon2;
  String Wagon3;
  
  public Bahnhofneu()
  {
    gleis = new Stack[3];
    
    for (i=0;i<3 ;++i ) 
    {
      gleis[i]= new Stack();
    } 
  }
  
  public boolean verschieben(int vonGleis, int nachGleis)
  
  {
    if(gleise[nachGleis].size()==3 || gleise[vonGleis].size()==0) //überprüft ob das gleis frei ist, und ob auf dem anderen ein Wagon drauf ist (|| = oder )
    return false;
  }
  
  else
  {
    String wagon = gleis[vonGleis].pop();   //runternehmen
    gleis[nachGleis].push(wagon);
    return false;
    
  }   

  
  public boolean erstelleWagon(int gleis)
  {
  if (gleise[gleis].size()==3)
  {
    return false;
  } // end of if
  
  else 
  {
    gleis[gleis].push(wagon);  //drauflegen
    return true;
  }  
  }
  
  
  public boolean entferneWagon(int gleis)
  {
    if (gleise[gleis].size()==0 
    {
      return false;
    } 
    
    else
    {
      gleise[gleis].pop();
      return true;
    }
  }
}
```



Stackneu.java


```
import java.util.*;

public class Stack
{  int Wagon;

  LinkedList<Wagon>l= new LinkedList();
  
  public void push(String Wagon)
  {
    l.add(wag);

  }

  public Gleis pop()
  {
    return l.removeLast();
  }
  
  public int size()
  {
    return l.size();
  }

}
```

So, mit dem Java Editor bekommt sie jede Menge fehlermeldungen und da ich keine Ahnung habe, wäre ich dankbar wenn jemand helfen würde (wirklich, langsam nervt es wenn man immer zu allem möglichem gefragt wird nur weil man 3 PC´s in der Wohnung hat...)


Gruß Zandalor


----------



## Zandalor (9. Jan 2013)

Ach ja, mit dem Java Editor hat sie bei sich zuhause geschaut. In der Schule benutzt sie BlueJ oder so ähnlich.


----------



## nillehammer (9. Jan 2013)

In der Methode _verschieben_ von BahnhofNeu sind die geschweiften Klammern falsch gesetzt bzw. es fehlen welche. Schau Dir zum Vergleich mal die anderen beiden Methoden der Klasse an. Da stimmt es (zumindest soweit ich das sehe).

P.S. Es macht übrigens Sinn, die "Fehlermeldung" mit zu posten. Das erleichtert die Suche für uns und erhöht die Wahrscheinlichkeit einer hilfreichen Antwort. Außerdem zwingt es Dich dazu, die Fehlermeldung zumindest einmal zu lesen. Etwas Englischkenntnisse vorausgesetzt, sind gerade die Meldungen des Compilers nämlich ziemlich gut (es wird gesagt, was falsch ist, die Zeilennumer ist auch dabei...)


----------



## Marcinek (9. Jan 2013)

nillehammer hat gesagt.:


> P.S. Es macht übrigens Sinn, die "Fehlermeldung" mit zu posten. Das erleichtert die Suche für uns und erhöht die Wahrscheinlichkeit einer hilfreichen Antwort. Außerdem zwingt es Dich dazu, die Fehlermeldung zumindest einmal zu lesen. Etwas Englischkenntnisse vorausgesetzt, sind gerade die Meldungen des Compilers nämlich ziemlich gut (es wird gesagt, was falsch ist, die Zeilennumer ist auch dabei...)



Wenn man allerdings die Lösung erhält, obwohl man die Fehlermeldung nicht gepostet hat, sondern ein anderer sich die Mühe macht diese noch herauszufinden, dann hat man auch keinen Grund sowas zu posten ;D

@TO: Compilerfehler einfach googeln.


----------



## nillehammer (9. Jan 2013)

Marcinek hat gesagt.:
			
		

> Wenn man allerdings die Lösung erhält, obwohl man die Fehlermeldung nicht gepostet hat, sondern ein anderer sich die Mühe macht diese noch herauszufinden, dann hat man auch keinen Grund sowas zu posten ;D


Ja stimmt opcorn: Ich versuch aber Belehrungen meinerseits immer mit 'ner Antwort zu verknüpfen. Das wirkt etwas netter


----------



## Zandalor (9. Jan 2013)

Ja die Fehlermeldungen zu posten macht sinn. Das leuchtet mir ein^^

Fehlermeldung Bahnhofneu


```
Compiliere C:\Users\Administrator\Desktop\projekt\Stackneu.java mit Java-Compiler
Stackneu.java:4:8: error: class Stack is public, should be declared in a file named Stack.java
public class Stack
       ^
Stackneu.java:7:14: error: cannot find symbol
  LinkedList<Wagon>l= new LinkedList();
             ^
  symbol:   class Wagon
  location: class Stack
Stackneu.java:15:10: error: cannot find symbol
  public Gleis pop()
         ^
  symbol:   class Gleis
  location: class Stack
Stackneu.java:11:11: error: cannot find symbol
    l.add(wag);
          ^
  symbol:   variable wag
  location: class Stack
Note: Stackneu.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
4 errors

Compiliere C:\Users\Administrator\Desktop\Informatik\projekt\Bahnhofneu.java mit Java-Compiler
Bahnhofneu.java:25:3: error: illegal start of type
  else
  ^
Bahnhofneu.java:25:7: error: ';' expected
  else
      ^
Bahnhofneu.java:28:11: error: ']' expected
    gleis[nachGleis].push(wagon);
          ^
Bahnhofneu.java:28:20: error: ';' expected
    gleis[nachGleis].push(wagon);
                   ^
Bahnhofneu.java:28:22: error: invalid method declaration; return type required
    gleis[nachGleis].push(wagon);
                     ^
Bahnhofneu.java:28:32: error: <identifier> expected
    gleis[nachGleis].push(wagon);
                               ^
Bahnhofneu.java:29:5: error: illegal start of type
    return false;
    ^
Bahnhofneu.java:29:11: error: ';' expected
    return false;
          ^
Bahnhofneu.java:34:10: error: class, interface, or enum expected
  public boolean erstelleWagon(int gleis)
         ^
Bahnhofneu.java:39:3: error: class, interface, or enum expected
  } // end of if
  ^
Bahnhofneu.java:44:5: error: class, interface, or enum expected
    return true;
    ^
Bahnhofneu.java:45:3: error: class, interface, or enum expected
  }  
  ^
Bahnhofneu.java:49:10: error: class, interface, or enum expected
  public boolean entferneWagon(int gleis)
         ^
Bahnhofneu.java:54:5: error: class, interface, or enum expected
    } 
    ^
Bahnhofneu.java:59:7: error: class, interface, or enum expected
      return true;
      ^
Bahnhofneu.java:60:5: error: class, interface, or enum expected
    }
    ^
16 errors
```

Fehlermeldung Stackneu


```
Compiliere C:\Users\Administrator\Desktop\Informatik\projekt\Stackneu.java mit Java-Compiler
Stackneu.java:4:8: error: class Stack is public, should be declared in a file named Stack.java
public class Stack
       ^
Stackneu.java:7:14: error: cannot find symbol
  LinkedList<Wagon>l= new LinkedList();
             ^
  symbol:   class Wagon
  location: class Stack
Stackneu.java:15:10: error: cannot find symbol
  public Gleis pop()
         ^
  symbol:   class Gleis
  location: class Stack
Stackneu.java:11:11: error: cannot find symbol
    l.add(wag);
          ^
  symbol:   variable wag
  location: class Stack
Note: Stackneu.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
4 errors
```

Also mir sagt das mal so garnichts. Ich habe seit heute morgen mir das durchgelesen und durch einen Doppelklick kommt man ja auch in die Zeile mit dem Fehler. Ich habe auch gegoogelt aber das sagt mir nicht viel. Ich habe vor ca 2 Stunden angefangen mit einer Einführung für Java damit ich vlt irgendwas davon verstehe. Aber Java lernt man nicht so schnell denke ich also macht das nicht so viel Sinn.

@nillehammer
Wenn ich rausgefunden habe was eine Methode ist bzw wie man so etwas schreibt, dann komme ich vlt auch darauf wie man die Klammern setzt 

Auf jedenfall danke das ihr euch überhaupt damit befasst 

Gruß Zandalor


----------



## Tomate_Salat (9. Jan 2013)

> error: class Stack is public, *should be declared in a file named Stack.java*


Die Fehlermeldung sagt dir doch ganz genau, was du machen musst, damits läuft ;-). Vllt sollte sich deine Freundin nochmal hinsetzen und die Basics lernen --- am besten komplett vom Anfang an.


----------



## Zandalor (9. Jan 2013)

ok dann sollte ich danach jetzt googgeln wie das geht?
Also damit ich das richtig verstehe, ich soll eine Datei namens Stack.java erstellen und die soll in Bahnhof neu angegeben sein?

Wirklich, ihr könnt mir glauben das ich überhaupt keine ahnung von Java habe und ich mich seit heute damit befasse. Könnt ihr mir vlt sagen in welchem Abschnitt eines Tuorials sowas vorkommt?

Hm ich googel mal nach dieser meldung und schaue dann was ich machen soll.


----------



## Zandalor (9. Jan 2013)

Ok, ich habe gegoogelt und wenigstens bei Stackneu.java nur noch einen Fehler. Ich weiß aber nicht was der mir sagen soll.

Stackneu.java


```
import java.util.*;

public class Stackneu
{  int Wagon;

  LinkedList<Wagon1>= new LinkedList();
  
  public void push(String Wagon)
  {
    l.add(wag);

  }

  public Gleis pop()
  {
    return l.removeLast();
  }
  
  public int size()
  {
    return l.size();
  }

}
```

Fehlermeldung


```
Compiliere C:\Users\Administrator\Desktop\Informatik\projekt\Stackneu.java mit Java-Compiler
Stackneu.java:7:21: error: <identifier> expected
  LinkedList<Wagon1>= new LinkedList();
                    ^
1 error
```


----------



## Landei (9. Jan 2013)

[c]LinkedList<Wagon> l= new LinkedList<Wagon>();[/c]


----------



## Zandalor (9. Jan 2013)

Danke Landei, aber wenn ich das tue, kommt diese Fehlermeldung bei rum


```
Compiliere C:\Users\Administrator\Desktop\Informatik\projekt\Stackneu.java mit Java-Compiler
Stackneu.java:7:20: error: <identifier> expected
  LinkedList<Wagon> 1= new LinkedList();
                   ^
Stackneu.java:7:22: error: illegal start of type
  LinkedList<Wagon> 1= new LinkedList();
                     ^
Stackneu.java:7:23: error: <identifier> expected
  LinkedList<Wagon> 1= new LinkedList();
                      ^
Stackneu.java:7:27: error: ';' expected
  LinkedList<Wagon> 1= new LinkedList();
                          ^
Stackneu.java:7:38: error: illegal start of type
  LinkedList<Wagon> 1= new LinkedList();
                                     ^
Stackneu.java:7:39: error: <identifier> expected
  LinkedList<Wagon> 1= new LinkedList();
                                      ^
6 errors
```


----------



## Timothy Truckle (9. Jan 2013)

Zandalor hat gesagt.:


> Danke Landei, aber wenn ich das tue, kommt diese Fehlermeldung bei rum
> 
> 
> ```
> ...


Ja, es ist hart, wenn man 
	
	
	
	





```
l
```
 nicht von 
	
	
	
	





```
1
```
 unterscheiden kann...

bye
TT


----------



## nillehammer (9. Jan 2013)

Jaja, 1 (eins) und l (Buchstabe L) sind leicht zu verwechseln. Landei hat l genommen, Du 1. Identifier dürfen in Java nicht mit einer Zahl beginnen. Ich muss aber sagen, langsam nervt mich es mich, dass wir hier den Debugger für Dein Programm spielen sollen, wo du offensichtlich so wenig von den Syntaxregeln in Java weißt. Ich bin jedenfalls raus.


----------



## Timothy Truckle (9. Jan 2013)

nillehammer hat gesagt.:


> Ich muss aber sagen, langsam nervt mich es mich, dass wir hier den Debugger für Dein Programm spielen sollen, wo du offensichtlich so wenig von den Syntaxregeln in Java weißt. Ich bin jedenfalls raus.


Aber es ist doch für seine "Freundin"! :lol:
Wenigstens ist das mal 'ne neue Masche.:applaus:

bye
TT


----------



## Tomate_Salat (9. Jan 2013)

nillehammer hat gesagt.:


> Jaja, 1 (eins) und l (Buchstabe L) sind leicht zu verwechseln. Landei hat l genommen, Du 1. Identifier dürfen in Java nicht mit einer Zahl beginnen. Ich muss aber sagen, langsam nervt mich es mich, dass wir hier den Debugger für Dein Programm spielen sollen, wo du offensichtlich so wenig von den Syntaxregeln in Java weißt. Ich bin jedenfalls raus.



Ich entschärfe das mal ein wenig:

Das Problem ist folgendes: deine/eure Probleme sind von solch Grundlegender Natur, dass soetwas in jedem Lehrbuch zu Java im ersten Kapitel nach der Enstehungsgeschichte zur Sprache erklärt wird. Wenn man nicht weiß, wie man eine Klasse korrekt anlegt oder eine variable, dann ist das kein Fall für ein Forum, sondern für ein Lehrbuch oder Google. Dann solltest du auch die Fehlermeldungen lesen: wenn da drin steht: "Der Name der Datei muss [name].java heißen" - dann benennt man die Datei um ;-).

Wir sind keine Lehrer die mit dir/euch Kapitelweise ein Lehrbuch durchgehen + Übungen kontrollieren. Das könnt ihr selber oder lernt es in der Schule/Uni. Wenn Ihr Probleme habt, ist das Forum eigentl. immer der letzte Schritt. 

1.) selber nachdenken, lösungswege ausprobieren
2.) Google 
3.) Google mit besseren schlagwörtern
4.) Schritt 3.) optimiert
5.) Forum-suche

Wenn dann keine Lösung gefunden wurde, dann helfen wir natürlich gerne ;-)


----------

