import java.awt.Dimension;
import java.awt.Panel;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
/**
* Beschreibung
*
* @version 1.0 vom 22.04.2009
* @author
*/
public class HalmaGUI extends JFrame {
private static final long serialVersionUID = 2976119233557138602L;
// Anfang Variablen
// Anfang Attribute
private JButton[][] btnFeld = new JButton[9][25];
private ImageIcon schwarz = new ImageIcon("schwarzerPunkt.gif");
private ImageIcon rot = new ImageIcon("roterPunkt.gif");
private ImageIcon blau = new ImageIcon("blauerPunkt.gif");
private ImageIcon weiß = new ImageIcon("weißerPunkt.gif");
private ImageIcon hrot = new ImageIcon("hellroterPunkt.gif");
private ImageIcon hblau = new ImageIcon("hellblauerPunkt.gif");
// Ende Attribute
// Ende Variablen
public HalmaGUI(String title) {
// Frame-Initialisierung
super(title);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
int frameWidth = 793;
int frameHeight = 810;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int px = (d.width - getSize().width) / 2;
int py = (d.height - getSize().height) / 2;
setLocation(px, py);
Panel cp = new Panel(null);
setContentPane(cp);
// Anfang Komponenten
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(((JButton)e.getSource()).getLocation());
}
};
for(int x = 0; x < btnFeld.length; x++) {
for(int y = 0; y < btnFeld[x].length; y++) {
if(x == 0 && y % 2 != 0) { // nicht belegte Felder im
continue; // Spielfeld
}
if(x == 1 && y > 1 && y < 23 && y % 2 == 0) {
continue;
}
if(x == 2 && y > 2 && y < 22 && y % 2 != 0) {
continue;
}
if(x == 3 && y > 3 && y < 21 && y % 2 == 0) {
continue;
}
if(x == 4 && y > 4 && y < 20 && y % 2 != 0) {
continue;
}
if(x == 5 && y > 3 && y < 21 && y % 2 == 0) {
continue;
}
if(x == 6 && y > 2 && y < 22 && y % 2 != 0) {
continue;
}
if(x == 7 && y > 1 && y < 23 && y % 2 == 0) {
continue;
}
if(x == 8 && y % 2 != 0) {
continue;
}
if(x == 4 && y < 4) { // nicht belegte Felder oberhalb
continue; // des Hofs
}
if(x == 3 && y < 3) {
continue;
}
if(x == 5 && y < 3) {
continue;
}
if(x == 2 && y < 2) {
continue;
}
if(x == 6 && y < 2) {
continue;
}
if(x == 1 && y == 0) {
continue;
}
if(x == 7 && y == 0) {
continue;
}
if(x == 4 && y > 20) { // nicht belegte Felder unterhalb
continue; // des Hofs
}
if(x == 3 && y > 21) {
continue;
}
if(x == 5 && y > 21) {
continue;
}
if(x == 2 && y > 22) {
continue;
}
if(x == 6 && y > 22) {
continue;
}
if(x == 1 && y == 24) {
continue;
}
if(x == 7 && y == 24) {
continue;
}
btnFeld[x][y] = new JButton();
btnFeld[x][y].setBounds(10 + x * 55, 10 + y * 30, 30, 30);
btnFeld[x][y].addActionListener(listener);
cp.add(btnFeld[x][y]);
}
}
// Ende Komponenten
setResizable(false);
setVisible(true);
new Steuerung(this);
}
public static void main(String[] args) {
new HalmaGUI("HalmaGUI");
}
// Anfang Ereignisprozeduren
// Ende Ereignisprozeduren
// Ende Methoden
// Anfang Methoden
public void aktualisiereGUI(int pX, int pY, int pValue) {
if(pValue == 0) btnFeld[pX][pY].setIcon(weiß);
if(pValue == 1) btnFeld[pX][pY].setIcon(rot);
if(pValue == 2) btnFeld[pX][pY].setIcon(blau);
if(pValue == 3) btnFeld[pX][pY].setIcon(hrot);
if(pValue == 4) btnFeld[pX][pY].setIcon(hblau);
if(pValue == 5) btnFeld[pX][pY].setIcon(schwarz);
}
}