Hallo,
bin noch ein Anfänge in Java daher seid mir nicht böse wenn ich nicht so korrekte Aussagen mache!
Also ich habe folgendes Problem:
Ich habe ein Applet mit Canvas Objekten(so ne Art Magischer Würfel) in dem die Canvas Objekte auf bzw. wieder zugedeckt werden können! So weit so gut funktioniert auch alles super! Jetzt muss ich aber
einen zusätzlichen Protokollframe programmieren der beim aufdecken eines Canvas Objekte im Applet das identische Canvas Objekt im Frame aufdeckt. Habe eine Model Klasse erstellt die das nötige Verhalten aufweist!
Jetzt habe ich aber das Problem dass ich eine Event Handler Klasse habe und ich es nicht hinbekomme, die Model Klasse bei diesem anzumelden!
Wäre echt nett wenn mir jemand von euch einen kleinen Tipp geben könnte! :bahnhof:
Hier die Event Handler Klasse
Frame
Gruß Haefel
bin noch ein Anfänge in Java daher seid mir nicht böse wenn ich nicht so korrekte Aussagen mache!
Also ich habe folgendes Problem:
Ich habe ein Applet mit Canvas Objekten(so ne Art Magischer Würfel) in dem die Canvas Objekte auf bzw. wieder zugedeckt werden können! So weit so gut funktioniert auch alles super! Jetzt muss ich aber
einen zusätzlichen Protokollframe programmieren der beim aufdecken eines Canvas Objekte im Applet das identische Canvas Objekt im Frame aufdeckt. Habe eine Model Klasse erstellt die das nötige Verhalten aufweist!
Jetzt habe ich aber das Problem dass ich eine Event Handler Klasse habe und ich es nicht hinbekomme, die Model Klasse bei diesem anzumelden!
Wäre echt nett wenn mir jemand von euch einen kleinen Tipp geben könnte! :bahnhof:
Hier die Event Handler Klasse
Java:
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.lang.Object;
import java.util.*;
public class MosaikEventHandler implements MouseListener{
Hashtable modelTable;
Object key;
StatistikModel sm;
public MosaikEventHandler(ModelIF mosaikModel){
modelTable = new Hashtable();
addModel(mosaikModel);
}
public void setMosaikModelFrame(MosaikModelFrame mosaikModelFrame) {
modelTable = new Hashtable();
addModelFrame(mosaikModelFrame);
}
private int intZeile, intSpalte;
public void mouseReleased(MouseEvent me){
intZeile = ((MosaikIF)me.getSource()).getZeile();
intSpalte =((MosaikIF)me.getSource()).getSpalte();
Enumeration enum = modelTable.keys();
while(enum.hasMoreElements()){
key = enum.nextElement();
((ModelIF)modelTable.get(key)).action(intZeile, intSpalte);
((MosaikModelFrame)modelTable.get(key)).action(intZeile, intSpalte);
}
}
public void addModel(ModelIF mosaikModel){
key = new Integer(mosaikModel.hashCode());
modelTable.put(key, mosaikModel);
};
public ModelIF removeModel(ModelIF mosaikModel){
key = new Integer(mosaikModel.hashCode());
return (ModelIF)modelTable.remove(key);
};
public void addModelFrame(MosaikModelFrame mosaikModelFrame){
key = new Integer(mosaikModelFrame.hashCode());
modelTable.put(key, mosaikModelFrame);
};
public MosaikModelFrame removeModelFrame(MosaikModelFrame mosaikModelFrame){
key = new Integer(mosaikModelFrame.hashCode());
return (MosaikModelFrame)modelTable.remove(key);
};
public void mouseClicked(MouseEvent me){}
public void mouseEntered(MouseEvent me){}
public void mouseExited(MouseEvent me){}
public void mousePressed(MouseEvent me){}
}
Frame
Java:
public class MosaikFrame extends Frame{
private ModelIF mosaikModel;
private MosaikModelFrame mosaikModelFrame;
private MosaikCanvas mc;
private MosaikEventHandler mosaikEventHandler;
private Color farbe, farbeRueckseite, farbeVorderseite;
private int intZeile, intSpalte;
public MosaikEventHandler getEventHandler() {
return mosaikEventHandler;
}
// Konstruktor
public MosaikFrame (String title,int raster, int breite,Color farbeRueckseite, Color farbeVorderseite, MosaikEventHandler meref){
super (title);
setSize (350,450); // die Grösse des Frames setzen
setVisible(true);
this.setLocation(500,10);
mosaikModelFrame = new MosaikModelFrame(raster,raster);
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(raster, raster, farbeRueckseite, farbeVorderseite);
mosaikModelFrame.putObj(i,j,mc);
mc.setSize(canvasBreite, canvasBreite);
this.add(mc);
}
}
}
}
Gruß Haefel