import javax.imageio.ImageIO;
public class Layout extends Panels {
private Panels[] felder;
public JTextField texteingabe;
public JButton nextRound;
public JPanel north;
public Panels zeiger,gras;
private int i;
private boolean set;
private BufferedImage ganzesBild;
private BufferedImage bild;
public Layout() {// Default-Konsturktor-Beginn
Tasteneingebae tEingabe = new Tasteneingebae();// Erstellung des
// KeyListeners
setLayout(new GridLayout(10, 10));// Layout wird festgelegt
felder = new Panels[100];// Felder werden erzeugt
for (i = 0; i < felder.length; i++) {
felder[i] = new Panels();
// felder[i].setLayout(new GridLayout(0,1));
add(felder[i]);
}
for (i = 0; i < felder.length; i++) {
if (felder[i] == null) {
System.out.println("null-Fehler " + i);
}
}
zeiger=new Panels();
gras=new Panels();
nextRound=new JButton("Runde Beenden");
texteingabe = new JTextField();// Erstellung der Steuerung
texteingabe.setBorder(null);
texteingabe.setFocusable(true);
texteingabe.addKeyListener(tEingabe);
felder[99].add(texteingabe);
nextRound = new JButton("Runde Beenden"); //Runde Beenden Button
north=new JPanel();
north.setLayout(new GridLayout(0,1));
north.add(nextRound);
// gras.setLayout(new GridLayout(0,1));
try {// Gras-Bild wird geladen
BufferedImage ganzesBild = ImageIO.read(new File("GesamtBild.png"));
for (i = 0; i < felder.length; i++) {
gras.setHintergrund(ganzesBild.getSubimage(0, 0, 100, 100));
felder[i].setHintergrund(ganzesBild.getSubimage(0, 0, 100, 100));
bild =ganzesBild;
}
gras.setHintergrund(ganzesBild.getSubimage(0, 0, 100, 100));
} catch (IOException e) {
System.err.println("Fehler beim Laden");
}
try {// Zeiger-Bild wird geladen
BufferedImage ganzesBild = ImageIO.read(new File("Zeiger.png"));
zeiger.setHintergrund(ganzesBild);
} catch (IOException e) {
System.err.println("Fehler beim Laden");
}
// felder[99].setImage(ganzesBild.getSubimage(50, 100, 200, 400));
}
// --------------Defautlt-Konsturktor Ende------------------------------
// --------------------------------------------------------------------------
public void farbwechsel(int feld) { // Bestimmt das Feld wo der Zeiger ist
felder[feld].setMakiertes_feld(true);
felder[feld].setLayout(new GridLayout(0,1));
felder[feld].add(zeiger);
}
public int feldbestimmung() { // Bestimmt wo der zeiger gerade ist
for (int i = 0; i < 100; i++) {
if (felder[i].isMakiertes_feld() == true) {
return i;
}
}
return -1;
}
public void aktualisierung() { // Aktualisiert das Fenster
for (i = 0; i < felder.length; i++) {
if (felder[i].isMakiertes_feld() == true) {
felder[i].add(zeiger);
} else {
felder[i].remove(zeiger);
}
if (felder[i].isGreen() == true) {
if (felder[i].isGreen() == true
&& felder[i].isMakiertes_feld() == true) {
felder[i].setHintergrund(bild);
felder[i].add(zeiger);
} else {
felder[i].setBackground(Color.green);
}
} else {
if (felder[i].isMakiertes_feld() != true) {
setImage(null);
;
}
}
}
}
public void moveLinks(int posi) { // Feld nach Links bewegen
if ((posi - 1) != -1 && (posi - 1) % 10 != 9) {
felder[posi].setMakiertes_feld(false);
felder[posi - 1].setMakiertes_feld(true);
}
aktualisierung();
}
public void moveRechts(int posi) { // Feld nach Rechts bewegen
if ((posi + 1) % 10 != 0) {
felder[posi].setMakiertes_feld(false);
felder[posi + 1].setMakiertes_feld(true);
}
aktualisierung();
}
public void moveUnten(int posi) { // Feld nach Unten bewegen
if ((posi + 10) < 100) {
felder[posi].setMakiertes_feld(false);
felder[posi + 10].setMakiertes_feld(true);
}
aktualisierung();
}
public void moveOben(int posi) { // Feld nach oben bewegen
if ((posi - 10) > -1) {
felder[posi].setMakiertes_feld(false);
felder[posi - 10].setMakiertes_feld(true);
}
aktualisierung();
}
public void setGruen(int posi) { // Feld grün Färben
felder[posi].setGreen(true);
}
public void resetGruen(int posi) {// Feld wird wieder normal
felder[posi].setGreen(false);
aktualisierung();
}
public class Tasteneingebae implements KeyListener { // Abfangen der
// Tasteneingaben
private int feldposition = 0;
@Override
public void keyPressed(KeyEvent e) {// Wird ausgeführt, wenn eine Taste
// gedrückt wurde.
feldposition = feldbestimmung(); // Blaues-Feld wird bestimmt
texteingabe.setText("");
if (e.getKeyChar() == 'a') { // Blaues-Feld wird nach Links bewegt
moveLinks(feldposition);
}
if (e.getKeyChar() == 'd') { // Blaues-Feld wird nach Rechts bewegt
moveRechts(feldposition);
}
if (e.getKeyChar() == 'w') { // Blaues-Feld wird nach Oben bewegt
moveOben(feldposition);
}
if (e.getKeyChar() == 's') { // Blaues-Feld wird nach Unten bewegt
moveUnten(feldposition);
}
if (e.getKeyChar() == 'g') {
setGruen(feldposition);
}
if (e.getKeyChar() == 'r') {
resetGruen(feldposition);
}
}
@Override
public void keyReleased(KeyEvent e) {// Wird ausgeführt, wenn eine Taste
// losgelassen wurde.
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {// Wird ausgeführt, wenn eine Taste
// gedrückt und wieder losgelassen
// wurde.
// TODO Auto-generated method stub
}
}
}