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 :
Hir ist das das problem .
Ich Würde mich echt freuen wen mir wer Helfen könte.
LG Christoph
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);
}
}
}
}
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());
}
}
LG Christoph