Multiple markers at line 15

Dogge

Aktives Mitglied
In Zeile 15 gibt es einen Fehler ,den ich nicht korrigieren kann.
Was bedeutet multiple markers? -model- wurde nur 1 mal verwendet?
Es sollte eigentlich laufen.
Java:
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.Panel;


public class FarbMosaik extends Panel {
	/**
	 * 
	 */
	
	//private MosaikModel mosaikModel;
	private ModelIF model;
	private MosaikEventHandler eventHandler;
	public FarbMosaik (int raster, int breite, Color farbeRueckseite, Color farbeVorderseite) {
		 model = new MosaikModel( raster, raster);
		eventHandler=new MosaikEventHandler(model);
		this.setLayout(new GridLayout(raster,raster,1,1));
		int canvasBreite=breite/raster;
		
		for(int i=0;i<raster;i++) {
			for(int j=0;j<raster;j++) {
				MosaikCanvas2 mc= new MosaikCanvas2(i,j,farbeRueckseite,farbeVorderseite);
				mc.addMouseListener(eventHandler);
				model.putObj(i, j, mc);
				mc.setSize(canvasBreite, canvasBreite);
				this.add(mc);
			}
		}
	}

}

LineBreakpoint at line 15 wird auch angezeigt.Was bedeutet das?
 
Zuletzt bearbeitet:
Sorry, ich hatte was gepostet, aber das war Blödsinn. Deswegen hab ich den Inhalt meines Postings wieder "weg-editiert"...

Zu deiner Frage:
Hast du die Klasse MosaikModel importiert?
Gibt es dort einen passenden Konstruktor?
 
MosaikModel ist im gleichen Ordner drin und sie hat auch einen Konstruktor.
Java:
public abstract class MosaikModel implements ModelIF {
	private MosaikIF [] [] mObjects;
	private int zeilen, spalten;
	
	public MosaikModel(int zeilen, int spalten) {
		this.zeilen=zeilen;
		this.spalten=spalten;
		mObjects = new MosaikIF[zeilen][spalten]; 
		/*MosaikIF statt MosaikCanvas2*/
		
	}
	public void switchNachbarn(int zeile, int spalte) {
		//Mitte ,Links ,Rechts
		if(zeile-1>=0) {
			invert(zeile-1,spalte);
			if(spalte-1>=0) {
				invert(zeile-1,spalte-1);
			}
			if(spalte+1<spalten) {
				invert(zeile-1,spalte+1);
			}
		}
		if(spalte-1>=0) {
			invert(zeile,spalte-1);
		}
		if(spalte+1<spalten) {
			invert(zeile,spalte+1);
		}
		if(zeile+1<zeilen) {
			invert(zeile+1,spalte);
			if(spalte-1>=0) {
				invert(zeile+1,spalte-1);
				
			
			}
			if(spalte+1<spalten) {
				invert(zeile+1,spalte+1);
			}
		}
	}
	private void invert(int zeile,int spalte) {
		mObjects [zeile][spalte].switchSeite();
			
	}
	/*MosaikIF durch MosaikCanvas*/
	public void putObj (int zeile,int spalte ,MosaikIF mObj) {
		mObjects [zeile][spalte ]= mObj;
	}
	public void action(int zeile, int spalte) {
		this.switchNachbarn(zeile,spalte);
		
	}
			
		

}
"Gibt es dort einen passenden Konstruktor?"

Kann eine Klasse mehrere Konstruktoren haben?
 
ModelIF
Java:
public interface ModelIF {
	void action(int zeile, int spalte);
	void putObj(int zeile,int spalte, MosaikIF mObj);
	void switchNachbarn(int zeile, int spalte);
	
	
	

}
MosaikIF
Java:
public interface ModelIF {
	void action(int zeile, int spalte);
	void putObj(int zeile,int spalte, MosaikIF mObj);
	void switchNachbarn(int zeile, int spalte);
	
	
	

}

MosaikEventHandler
Java:
MosaikEventHandlerimport java.awt.event.MouseEvent;
import java.awt.event.MouseListener;


public class MosaikEventHandler implements MouseListener {
	
	//private MosaikModel mosaikModel
	private ModelIF model;
	
	public MosaikEventHandler(ModelIF model) {
		this.model=model;
	}
	
	private int zeile, spalte;
	/* MosaikIF statt MosaikCansas2*/
	public void mouseReleased(MouseEvent me) {
		zeile=((MosaikIF)me.getSource()).getZeile();
		spalte=((MosaikIF)me.getSource()).getSpalte();
		 model.switchNachbarn(zeile,spalte);
	}

	public void mouseClicked(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}



	public void mouseEntered(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	public void mouseExited(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
	

}

MosaikCanvas
Java:
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;

/* MosaikIF gehört nicht dazu*/
public class MosaikCanvas2 extends Canvas implements MosaikIF{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Color farbe, farbeRueckseite, farbeVorderseite;
	public Color getFarbe() {
		return farbe;
	}
	public void setFarbe(Color inValue) {
		farbe=inValue;
	}
	private boolean vorderseite = false;
	public boolean isVorderseite() {
		return vorderseite;
	}
	private int zeile, spalte;
	public int getZeile() {
		return zeile;
	}
	public int getSpalte() {
		return spalte;
	}
	public MosaikCanvas2(int zeile,int spalte, Color farbeRueckseite, Color farbeVorderseite) {
		this.zeile=zeile;
		this.spalte=spalte;
		this.farbeRueckseite=farbeRueckseite;
		this.farbeVorderseite=farbeVorderseite;
		this.setFarbe(farbeRueckseite);
		
		
	}
	/**
	 * Initialisiert ein Objekt  unter Angabe der Lage in einem Containerraster
	 * bei Festlegung von Forderseiten und Rueckseitenfarbe.
	 * Der  einbettende<i> Container</i> sollte ein 
	 * GridLayout verwenden.
	 * @param  zeile Nummer der<i< Zeile</i> im einbettenden
	 * Container 
	 * @param  spalte Nummer der<i>Spalte</i>im Container
	 */
	public void switchSeite() {
		vorderseite=!vorderseite;
		farbe=(farbe==farbeRueckseite)? farbeVorderseite : farbeRueckseite;
		repaint();
	}
	
	public void paint(Graphics g) {
		g.setColor(getFarbe());
		g.fillRect(0, 0, this.getSize().width-1 ,this.getSize().height-1 );
	}
	
	

}
Mosaik

Java:
mport java.awt.Color;


public class Mosaik extends java.applet.Applet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Color farbeRueckseite = new Color(230,30,50);
	private Color farbeVorderseite = new Color(50,210,30);
	private int raster;
	
	public void init() {
		String temp=this.getParameter("raster");
		raster=Integer.parseInt(temp);
		
		FarbMosaik fm = new FarbMosaik(raster, getSize().width, farbeRueckseite, farbeVorderseite);
		this.add(fm);
	}
	

}
 
Zuletzt bearbeitet:
short, self contained, correct example

Es geht um ein Spiel bei dem man eine schachbrettartige(Raster) Oberfläche in gleicher Farbe hat.
Beim Anklicken eines Felds werden die umliegenden 8 in einer anderen Farbe gefärbt.
Das geklickte Feld bleibt jedoch unverändert.Es gibt nur 2 Farben. Ziel des Spiels ist es die komplette Oberfläche zu verfärben, jedes Kästchen, ausnahmslos.

[EDIT]Warum kann MosaikModel nicht instanziert werden? Könnte es mehrere Versionen dieser Klasse geben, die ich nicht sehe? Vielleicht Varianten die ich gelöscht habe und mich aus der History(Eclipse) heimsuchen?
[/EDIT]

[EDIT] Angenommen ich nutze verschiedene Packages in denen ich etwas ähnliches mache.
Sagen wir mal mit MosaikModel. Könnten sich die verschiedenen Objekte,trotz untr. Packages
beinflussen und so sich gegenseitig beim instanzieren stören?
[/EDIT]
 
Zuletzt bearbeitet:

Zurück
Oben