AWT Problem mit Protokol Fenster

Christoph veit

Aktives Mitglied
Ich habe ein Mosaik Spiel geschriben und das fuktioniert schon recht gut .
Dan wolde ich ein protokolfenster mit gleicher ober fleche schreiben , nur das sich wen ich im spiel eine karte trüke die gleiche karte im Fram Fenster um dret.
Mein Problem ist das ich keine oberfleche im Protokol Fenster sehe .
Code :
Java:
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.Panel;
public class FarbMosaik extends Panel
{
	private ModelIF mosaikModel;
	private MosaikEventHandler eventHandler;
	public MosaikEventHandler getEventHandler()
	{
		return eventHandler;
	}
	public FarbMosaik(int raster ,int breite,int shoeje,Color farbeRueckseite,Color farbeVorderseite)
	{
		mosaikModel = new MosaikModel(raster,raster);
		eventHandler = new MosaikEventHandler(mosaikModel);
		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++)
			{
			    MosaikCanvas mc = new MosaikCanvas(i,j,canvasBreite, farbeRueckseite,farbeVorderseite);
				mc.addMouseListener(eventHandler);
				mosaikModel.putObj(i,j,mc);
				mc.setSize(canvasBreite,canvasBreite);
				this.add(mc);
			}
		}
	}
}

Java:
import java.awt.GridLayout;
import java.awt.Frame;
import java.awt.Color;
import java.awt.Panel;
public class ProtokolFenster extends Frame
{
	private Color farbeVorderseite,farbeRueckseite;
	private Panel panel;
	private Frame frame;
	public ProtokolFenster(int raster,int breite,int hoehe,Color farbVorderseite,Color farbRueckseite)
	{
		frame = new Frame("Protokolfester");
		frame.setSize(breite,breite);
		frame.setVisible(true);
		panel = new Panel(new GridLayout(raster,raster,1,1));
		 int canvasBreite = breite /raster;
		for(int i =0 ;i<raster;i++){
			for(int j =0;j<raster;j++ ){
				MosaikCanvas mc = new MosaikCanvas(i,j,canvasBreite,farbeRueckseite,farbeVorderseite);
				mc.setSize(canvasBreite,canvasBreite);
				this.add(mc);
			}
		}
	}

}
Hir ist das das problem .
Java:
import java.awt.*;
import java.awt.Point;
public class MosaikCanvas extends Canvas implements MosaikIF
{
	private Color farbe, farbeRueckseite,farbeVorderseite;
	private Point point;
	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,breite;
	public int getZeile()
	{
		return zeile;
	}
	public int getSpalte()
	{
		return spalte;
	}
	public MosaikCanvas(int zeile, int spalte,int breite, Color farbeRueckseite, Color farbeVorderseite)
	{
		this.zeile=zeile;
		this.spalte=spalte;
		this.breite=breite;
		this.farbeRueckseite=farbeRueckseite;
		this.farbeVorderseite=farbeVorderseite;
		this.setFarbe(farbeRueckseite);

	}

	public void switchSeite()
	{
		vorderseite =!vorderseite;
		if(farbe == farbeRueckseite)
		{
			farbe = farbeVorderseite;
		}
		else
		{
			farbe= farbeRueckseite;
		}
		/*farbe =(farbe == farbeRueckseite)?
		farbeVorderseite: farbeRueckseite;*/
		repaint();
	}
	public void paint(Graphics g)
	{
		g.setColor(getFarbe());
		g.fillRect(0,0,getSize().width-1 ,getSize().height-1);
	}
}
Java:
import java.awt.Color;
import java.awt.Image;
import java.awt.Component;
import java.applet.Applet;
public class Mosaik extends Applet implements SteuerIF
{
	private StatistikModel statistik;
	private ProtokolFenster pf;
	private int raster ;
	private String bildName;
	private Image image ;
	private BildMosaik bm;
	private FarbMosaik fm;
	private VorschauCanvas vorschauBild;
	private boolean zuletztBield;
	private Color farbeRueckseite;
	private Color farbeVorderseite;
	private Component steuerPanel;
	public void init()
	{
		String temp = getParameter("raster");
		try
		{
			raster = Integer.parseInt(temp);
		}
		catch(NumberFormatException nfe)
		{
			raster=4;
			System.out.println("Raster auf default ="+raster+" gesetzt.");
		}
	        statistik = new StatistikModel();

	        bildName =getParameter("bildName");
		    farbeRueckseite = new Color(230,30,50);
		    farbeVorderseite = new Color(50,210,30);
			image = this.getImage(getCodeBase(),bildName);
			image = ImageHandler.trackImage(image,this);
			vorschauBild = new VorschauCanvas(image);
			add(vorschauBild);
			steuerPanel = new SteuerPanel(this);
			add(steuerPanel);
		}
		public void startGame(int raster ,boolean modus)
		{
			if(vorschauBild != null)
			{
				remove(vorschauBild);
				vorschauBild = null;
			}
			else
			{
				if(zuletztBield)
				remove(bm);
				else
				remove(fm);
			}
			if(modus)
			{
				bm = new BildMosaik(raster,farbeRueckseite,image);
				bm.getEventHandler().addModel(statistik);
				add(bm);
                pf = new ProtokolFenster(raster,300,300,farbeRueckseite,farbeVorderseite);
				zuletztBield = true;
			}
			else
			{
				fm = new FarbMosaik(raster,image.getWidth(this),image.getHeight(this),farbeRueckseite,farbeVorderseite);
				fm.getEventHandler().addModel(statistik);
				add(fm);
				pf = new ProtokolFenster(raster,300,300,farbeRueckseite,farbeVorderseite);
				zuletztBield = false;
			}
			add(steuerPanel);
			validate();
		}
		public void resetGame()
		{
			validate();
		}
		public void destroy()
		{
			System.out.println(statistik.getStatistikInfo());
		}
	}
Ich Würde mich echt freuen wen mir wer Helfen könte.
LG Christoph
 

Neue Themen


Zurück
Oben