Java Fehlermeldung... ich weis nich weiter

Mr. Poe

Lt. Commander
Registriert
Juli 2010
Beiträge
1.961
hallo,

ich schreib gar nen programm, wenn ichs compielieren will kommt immer ne fehlermeldung, obwohl ales richtig geschrieben is...

hier der code:

Code:
	boolean array[][] = new boolean[60][80];
	array[0][0]=true;

und hier die meldung:

Code:
E:\datein\java>javac datei.java
datei.java:44: ']' expected
        array[0][0]=true;
                 ^
datei.java:44: ';' expected
        array[0][0]=true;
                   ^
datei.java:44: illegal start of type
        array[0][0]=true;
                    ^
datei.java:44: <identifier> expected
        array[0][0]=true;
                      ^
datei.java:44: ';' expected
        array[0][0]=true;
                       ^
datei.java:44: illegal start of type
        array[0][0]=true;
                         ^
datei.java:44: <identifier> expected
        array[0][0]=true;
                           ^
7 errors

woran liegt das??

@edit: die ^ sind verschoben... beim ersten sollte es unter der 0 sein beim 2ten unterm ] usw
 
Fehler dürft da keiner sein.
Vermute mal der Fehler liegt wo anders poste mal etwas mehr Code.
 
ist das dein ganzes programm? oder nur ein auszug?
 
davor werden nur andere variablen gemacht...
der bevor ich diese 2 zeilen rein hab ging alles einwandfrei... deshalb kann ich einen anderen fehler ausschließen. auch wenn ich diese zeile auskommentiere läufts normal...

is nurn auszug...

@edit:

hier mal die ersten zeilen von meinem programm (bitte keine rechtschreibfehler oder sonstiges kommenteiren ;))
Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class spiel extends JFrame implements KeyListener{

	// Fenstergroesse
	public static final int SIZEX = 800;
	public static final int SIZEY = 600;
	
	// nutzbare Spielfeld breite / laenge
	public static final int MAXPOSX = SIZEX - 20;
	public static final int MINPOSX = 10;
	public static final int MINPOSY = 30;
	public static final int MAXPOSY = SIZEY - 20;

	// Raster Koordinaten
	int rposx=10;
	int rposy=10;

	// Spieler Koordinaten
	int posx=50;
	int posy=60;

	// Var. fuer die While schleife(n)
	int i=0;

	// Koordinaten für den Gegner
	int grposx=100;
	int grposy=50;
	int gyposx=150;
	int gyposy=80;

	// variable für die zufällige steuerung der gegner
	double randomposx;
	double randomposy;
	int rx;
	int ry;
	
	// Hindernisse
[COLOR="Red"]	boolean hinderniss[][] = new boolean[SIZEX/10][SIZEY/10];
	int hx=0;
	int hy=0;
	hinderniss[0][0]=true;
	//hinderniss[10][10]=true;
	//hinderniss[16][9]=true;[/COLOR]
	
	// variablen für die tastensteuerung
	int dir;
	int tmp;
	int a = 0;
	int b = 0;

es sollte n kleines spielchen werden...
 
Zuletzt bearbeitet:
Wenn ich mich nicht täusche müsste es
Code:
boolean[][] array = new boolean[60][80];
heißen, also das [][] direkt nach boolean. Sind ja nicht bei C ;)
 
Code:
boolean array[][] = new boolean[60][80];
	array[0][0]=true;


Code:
boolean array[][] = new boolean[60][80];
	boolean[0][0]=true;


müsste es nicht eher auch so aussehen?
 
@turas:
ne es geht auch diese variante... is eig egal wie mans schreibt...
hab das auch schon probiert... funktioniert auch nich
 
Ah ok. Dann weiß ich leider auch nicht weiter...

Edit: Du bist ja in einer Klassendefinition und nicht in einer Methode, deswegen kannst du ein Element an einer bestimmten Stelle nicht festlegen,
Code:
hinderniss[0][0]=true;
ist also nicht erlaubt.

Deswegen erscheint in der Fehlermeldung auch ']' expected, da er nur Arraydeklarationen erwartet, keinen Arrayzugriff.
 
Zuletzt bearbeitet:
Versuch mal ein komplettes Minimalbeispiel zu erstellen, das mit möglichst wenig anderem Code den Fehler herbeiführt, und häng die Datei an.
 
rein vom Programmcode her funktioniert dein Source.

Nimmst du überhaupt Eclipse oder Netbeans her?
 
Zuletzt bearbeitet:
soll ich klammern dahinter machen??
aso ja stimmt^^ dann werd ich das in eine methode reinschreiben...

@edit:
jetzt funktionierts... danke^^

@edit2:
ne ich nehm notepad++ her...
 
Zuletzt bearbeitet:
Wenn du es unbedingt außerhalb einer Methode machen willst, so kannst du das auch beim ersten Aufrufen der Klasse erledigen.

Das ganze würde dann mit

Code:
static { .... }

funktionieren.


So würde das komplett aussehen -->

Code:
        [....]



	// Hindernisse
	boolean hinderniss[][] = new boolean[SIZEX/10][SIZEY/10];
	int hx=0;
	int hy=0;
	//hinderniss[0][0]=true;
	//hinderniss[10][10]=true;
	//hinderniss[16][9]=true;
	
	// variablen für die tastensteuerung
	int dir;
	int tmp;
	int a = 0;
	int b = 0;


       static { hinderniss[0][0]=true;
                    hinderniss[0][0]=true;
                    hinderniss[16][9]=true; }

 [...]

Hier aber sicherlich kein notwendige Schritt. Nennt sich Statischer Konstruktor.

Und benutz Eclipse oder so^^

Und Variablen mit dem Namen a,b,i haben da nichts zu suchen. Richtige Namen oder gut dokumentieren.... ! Abgesehen davon, ob sie überhaupt Instanzvariablen sein müssen.
 
Zuletzt bearbeitet:
Zurück
Oben