Hallo,
ich arbeite gerade eine Fallstudie zur Appleterstellung durch. Das Ganze ist ein Mosaik-Spiel. Zum Start wird ein Vorschaubild angezeigt, da drunter soll ein Steuerpanel zur Konfiguration des Spiels erscheinen. Dort habe ich gerade ein kleines Problem, denn das Steuerpanel wird nicht angezeigt und ich suche mir gerade einen Ast ab warum. Wäre top, wenn mir hier jemand helfen könnte.
Das Ganze besteht jetzt aus 13 Klassen und Interfaces, daher füge ich den Code hier nur aus relevanten Klassen ein und hänge das ganze Projekt als Zip-Archiv an (Beinhaltet kein Bild und HTML-File).
ich arbeite gerade eine Fallstudie zur Appleterstellung durch. Das Ganze ist ein Mosaik-Spiel. Zum Start wird ein Vorschaubild angezeigt, da drunter soll ein Steuerpanel zur Konfiguration des Spiels erscheinen. Dort habe ich gerade ein kleines Problem, denn das Steuerpanel wird nicht angezeigt und ich suche mir gerade einen Ast ab warum. Wäre top, wenn mir hier jemand helfen könnte.
Das Ganze besteht jetzt aus 13 Klassen und Interfaces, daher füge ich den Code hier nur aus relevanten Klassen ein und hänge das ganze Projekt als Zip-Archiv an (Beinhaltet kein Bild und HTML-File).
Java:
import java.applet.Applet;
import java.awt.Color;
import java.awt.Component;
import java.awt.Image;
public class Mosaik extends Applet implements SteuerIF {
/**
*
*/
private static final long serialVersionUID = 4051382005240124591L;
private int raster;
private String bildName;
private Image image;
private BildMosaik bm;
private FarbMosaik fm;
private VorschauCanvas vorschauBild;
private boolean zuletztBild;
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.");
}
bildName = getParameter("bildName");
farbeRueckseite = Color.BLUE;
farbeVorderseite = Color.YELLOW;
image = this.getImage(getCodeBase(), bildName);
// MediaTracker im ImageHandler
image = ImageHandler.trackImage(image, this);
// VorschauBild anzeigen
vorschauBild = new VorschauCanvas(image);
add(vorschauBild);
steuerPanel = new SteuerPanel(this);
add(steuerPanel);
//bm = new BildMosaik(raster, farbeRueckseite, image);
//this.add(bm);
System.out.println(getCodeBase());
}
@Override
public void startGame(int raster, boolean modus) {
// TODO Automatisch generierter Methodenstub
if(vorschauBild != null) {
remove(vorschauBild);
vorschauBild = null;
}
else {
if (zuletztBild)
remove(fm);
}
if (modus) {
bm = new BildMosaik(raster, farbeRueckseite, image);
add(bm);
zuletztBild = true;
}
else {
fm = new FarbMosaik(raster, image.getWidth(this), farbeRueckseite, farbeVorderseite);
add(fm);
zuletztBild = false;
}
add(steuerPanel);
validate();
}
@Override
public void resetGame() {
// TODO Automatisch generierter Methodenstub
validate();
}
}
Java:
interface SteuerIF {
public void startGame(int raster, boolean modus);
public void resetGame();
}
Java:
import java.awt.Button;
import java.awt.Checkbox;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class SteuerPanel extends Panel implements ActionListener {
/**
*
*/
private static final long serialVersionUID = -31821712221998710L;
// Elements
Label labRaster;
TextField tfRaster;
Checkbox checkBild;
Button bStart;
Button bReset;
private int raster;
private boolean mitBild;
private SteuerIF container;
public SteuerPanel(SteuerIF container) {
this.container = container;
}
public SteuerPanel() {
setLayout(new FlowLayout());
setFont(new Font("Dialog", Font.BOLD, 12));
labRaster = new Label("Raster:", Label.CENTER);
raster = 5;
tfRaster = new TextField(Integer.toString(raster));
checkBild = new Checkbox("Mit Bild?", true);
bStart = new Button(" Start ");
bReset = new Button(" Reset ");
bReset.addActionListener(this);
startKonfiguration();
}
private void startKonfiguration() {
// TODO Automatisch generierter Methodenstub
remove(bReset);
add(labRaster);
add(tfRaster);
add(checkBild);
add(bStart);
// Verwendung des gespeicherten raster Wert
tfRaster.setText(Integer.toString(raster));
tfRaster.selectAll();
tfRaster.requestFocus();
}
public void resetKonfiguration() {
remove(labRaster);
remove(tfRaster);
remove(checkBild);
remove(bStart);
add(bReset);
}
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == bStart) {
try {
raster = Integer.parseInt(tfRaster.getText().trim());
}
catch (NumberFormatException nfe) {
raster = 5;
}
mitBild = checkBild.getState();
resetKonfiguration();
container.startGame(raster, mitBild);
}
if (ae.getSource() == bReset) {
startKonfiguration();
container.resetGame();
}
}
}