import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import java.awt.Image.*;
import java.awt.Dimension.*;
public class Oberflaeche extends JFrame {
Steuerung steu;
JFrame fenster;
JPanel mitte,boxunten,friedr,friedl,friedr2,friedl2,mitte2,uber;
JLabel friedw,frieds,info,pl1,pl2;
JButton spielFeld[][] = new JButton[8][8];
JButton friedHofw[][] = new JButton[8][3];
JButton friedHofs[][] = new JButton[8][3];
Image image1 = new ImageIcon(getClass().getResource("pawnwH.gif")).getImage();
Image image2 = new ImageIcon(getClass().getResource("pawnwD.gif")).getImage();
Image image3 = new ImageIcon(getClass().getResource("bishopwH.gif")).getImage();
Image image4 = new ImageIcon(getClass().getResource("bishopwD.gif")).getImage();
Image image5 = new ImageIcon(getClass().getResource("kingwH.gif")).getImage();
Image image6 = new ImageIcon(getClass().getResource("kingwD.gif")).getImage();
Image image7 = new ImageIcon(getClass().getResource("queenwH.gif")).getImage();
Image image8 = new ImageIcon(getClass().getResource("queenwD.gif")).getImage();
Image image9 = new ImageIcon(getClass().getResource("rookwH.gif")).getImage();
Image image10 = new ImageIcon(getClass().getResource("rookwD.gif")).getImage();
Image image11 = new ImageIcon(getClass().getResource("knightwH.gif")).getImage();
Image image12 = new ImageIcon(getClass().getResource("knightwD.gif")).getImage();
Image image13 = new ImageIcon(getClass().getResource("pawnbH.gif")).getImage();
Image image14 = new ImageIcon(getClass().getResource("pawnbD.gif")).getImage();
Image image15 = new ImageIcon(getClass().getResource("bishopbH.gif")).getImage();
Image image16 = new ImageIcon(getClass().getResource("bishopbD.gif")).getImage();
Image image17 = new ImageIcon(getClass().getResource("kingbH.gif")).getImage();
Image image18 = new ImageIcon(getClass().getResource("kingbD.gif")).getImage();
Image image19 = new ImageIcon(getClass().getResource("queenbH.gif")).getImage();
Image image20 = new ImageIcon(getClass().getResource("queenbD.gif")).getImage();
Image image21 = new ImageIcon(getClass().getResource("rookbH.gif")).getImage();
Image image22 = new ImageIcon(getClass().getResource("rookbD.gif")).getImage();
Image image23 = new ImageIcon(getClass().getResource("knightbH.gif")).getImage();
Image image24 = new ImageIcon(getClass().getResource("knightbD.gif")).getImage();
Image image25 = new ImageIcon(getClass().getResource("pawnw.gif")).getImage();
Image image26 = new ImageIcon(getClass().getResource("pawnb.gif")).getImage();
Image image27 = new ImageIcon(getClass().getResource("bishopw.gif")).getImage();
Image image28 = new ImageIcon(getClass().getResource("bishopb.gif")).getImage();
Image image29 = new ImageIcon(getClass().getResource("kingw.gif")).getImage();
Image image30 = new ImageIcon(getClass().getResource("kingb.gif")).getImage();
Image image31 = new ImageIcon(getClass().getResource("queenw.gif")).getImage();
Image image32 = new ImageIcon(getClass().getResource("queenb.gif")).getImage();
Image image33 = new ImageIcon(getClass().getResource("rookw.gif")).getImage();
Image image34 = new ImageIcon(getClass().getResource("rookb.gif")).getImage();
Image image35 = new ImageIcon(getClass().getResource("knightw.gif")).getImage();
Image image36 = new ImageIcon(getClass().getResource("knightb.gif")).getImage();
Image image37 = new ImageIcon(getClass().getResource("hell.gif")).getImage();
Image image38 = new ImageIcon(getClass().getResource("dunkel.gif")).getImage();
ImageIcon img1 = new ImageIcon(image1.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img2 = new ImageIcon(image2.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img3 = new ImageIcon(image3.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img4 = new ImageIcon(image4.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img5 = new ImageIcon(image5.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img6 = new ImageIcon(image6.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img7 = new ImageIcon(image7.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img8 = new ImageIcon(image8.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img9 = new ImageIcon(image9.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img10 = new ImageIcon(image10.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img11 = new ImageIcon(image11.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img12 = new ImageIcon(image12.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img13 = new ImageIcon(image13.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img14 = new ImageIcon(image14.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img15 = new ImageIcon(image15.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img16 = new ImageIcon(image16.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img17 = new ImageIcon(image17.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img18 = new ImageIcon(image18.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img19 = new ImageIcon(image19.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img20 = new ImageIcon(image20.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img21 = new ImageIcon(image21.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img22 = new ImageIcon(image22.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img23 = new ImageIcon(image23.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img24 = new ImageIcon(image24.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img25 = new ImageIcon(image25.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img26 = new ImageIcon(image26.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img27 = new ImageIcon(image27.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img28 = new ImageIcon(image28.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img29 = new ImageIcon(image29.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img30 = new ImageIcon(image30.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img31 = new ImageIcon(image31.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img32 = new ImageIcon(image32.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img33 = new ImageIcon(image33.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img34 = new ImageIcon(image34.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img35 = new ImageIcon(image35.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img36 = new ImageIcon(image36.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img37 = new ImageIcon(image37.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
ImageIcon img38 = new ImageIcon(image38.getScaledInstance(85,85,Image.SCALE_SMOOTH ));
class Listener implements ActionListener{
int klickmerker = 1;
int xalt = 0;
int yalt = 0;
int xneu = 0;
int yneu = 0;
String d = "";
public void actionPerformed(ActionEvent e){
for(int i=0;i<64;i++){
d = ""+i;
if(e.getActionCommand().equals(d)){
for(int l=0;l<8;l++){
for(int j=0;j<8;j++){
if(spielFeld[l][j].getActionCommand().equals(d)){
if(klickmerker==1){
xalt = j;
yalt = l;
klickmerker = 2;
j = 8;
l = 8;
i = 64;
}
else{
xneu = j;
yneu = l;
steu.zuGpruef(xalt,yalt,xneu,yneu);
klickmerker = 1;
l = 8;
j = 8;
i = 64;
}
}
}
}
}
}
}
}
public Oberflaeche(Steuerung st) {
this.steu = st;
this.friedw = new JLabel("Friedhof Weiß", Label.LEFT);
this.frieds = new JLabel("Friedhof Schwarz", Label.LEFT);
this.pl1 = new JLabel();
this.pl2 = new JLabel();
this.info = new JLabel("Weiß beginnt");
this.mitte = new JPanel();
this.mitte2 = new JPanel(new GridBagLayout());
this.uber = new JPanel();
this.uber.setLayout(new GridLayout(1,4));
this.friedr = new JPanel();
this.friedl = new JPanel();
this.friedr2 = new JPanel(new GridBagLayout());
this.friedl2 = new JPanel(new GridBagLayout());
this.friedl.setLayout(new GridLayout(8,4));
this.friedr.setLayout(new GridLayout(8,4));
this.boxunten = new JPanel();
this.boxunten.add(info);
this.fenster = new JFrame("Schachspiel");
this.fenster.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
this.fenster.setSize(1400,800);
this.fenster.setLayout(new BorderLayout());
this.mitte.setLayout(new GridLayout(8,8));
this.friedr.setPreferredSize(new Dimension(255,680));
this.friedr.setMinimumSize(new Dimension(255, 680));
this.friedl.setPreferredSize(new Dimension(255,680));
this.friedl.setMinimumSize(new Dimension(255, 680));
this.uber.add(frieds);
this.uber.add(pl1);
this.uber.add(pl2);
this.uber.add(friedw);
this.mitte.setPreferredSize(new Dimension(690,690));
this.mitte.setMinimumSize(new Dimension(690, 690));
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.NONE;
this.mitte2.add(mitte, gbc);
this.friedr2.add(friedr, gbc);
this.friedl2.add(friedl, gbc);
this.fenster.add(mitte2,BorderLayout.CENTER);
this.fenster.add(uber,BorderLayout.NORTH);
this.fenster.add(friedl2,BorderLayout.WEST);
this.fenster.add(friedr2,BorderLayout.EAST);
this.fenster.add(boxunten,BorderLayout.SOUTH);
int k = 0;
String aa = "";
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
aa = ""+k;
this.spielFeld[i][j] = new JButton();
this.spielFeld[i][j].setMinimumSize(new Dimension(85,85));
this.spielFeld[i][j].setPreferredSize(new Dimension(85,85));
this.mitte.add(spielFeld[i][j]);
this.spielFeld[i][j].addActionListener(new Listener());
this.spielFeld[i][j].setActionCommand(aa);
k = k+1;
}
}
for(int i=0;i<8;i++){
for(int j=0;j<3;j++){
this.friedHofw[i][j] = new JButton();
this.friedHofs[i][j] = new JButton();
this.friedHofw[i][j].setMinimumSize(new Dimension(85,85));
this.friedHofw[i][j].setPreferredSize(new Dimension(85,85));
this.friedHofw[i][j].setMaximumSize(new Dimension(85,85));
this.friedHofs[i][j].setMinimumSize(new Dimension(85,85));
this.friedHofs[i][j].setPreferredSize(new Dimension(85,85));
this.friedHofs[i][j].setMaximumSize(new Dimension(85,85));
this.friedr.add(friedHofw[i][j]);
this.friedl.add(friedHofs[i][j]);
this.friedHofw[i][j].setVisible(false);
this.friedHofs[i][j].setVisible(false);
this.friedHofw[i][j].addActionListener(new Listener());
this.friedHofs[i][j].addActionListener(new Listener());
this.friedHofw[i][j].setBackground(new Color(238, 238, 238));
this.friedHofs[i][j].setBackground(new Color(238, 238, 238));
this.friedHofw[i][j].setBorder(new EmptyBorder(1,1,1,1));
this.friedHofs[i][j].setBorder(new EmptyBorder(1,1,1,1));
this.friedHofw[i][j].setEnabled(false);
this.friedHofs[i][j].setEnabled(false);
}
}
this.spielFeld[0][0].setIcon(img21);
this.spielFeld[0][1].setIcon(img24);
this.spielFeld[0][2].setIcon(img15);
this.spielFeld[0][3].setIcon(img20);
this.spielFeld[0][4].setIcon(img17);
this.spielFeld[0][5].setIcon(img16);
this.spielFeld[0][6].setIcon(img23);
this.spielFeld[0][7].setIcon(img22);
this.spielFeld[7][0].setIcon(img10);
this.spielFeld[7][1].setIcon(img11);
this.spielFeld[7][2].setIcon(img4);
this.spielFeld[7][3].setIcon(img7);
this.spielFeld[7][4].setIcon(img6);
this.spielFeld[7][5].setIcon(img3);
this.spielFeld[7][6].setIcon(img12);
this.spielFeld[7][7].setIcon(img9);
for(int i=2;i<6;i++){
for(int j=0;j<8;j++){
this.spielFeld[i][j].setIcon(img37);
j = j+1;
this.spielFeld[i][j].setIcon(img38);
}
i = i+1;
}
for(int i=2;i<6;i++){
i = i+1;
for(int j=0;j<7;j++){
j = j+1;
this.spielFeld[i][j].setIcon(img37);
j = j-1;
this.spielFeld[i][j].setIcon(img38);
j = j+1;
}
}
for(int i=0;i<8;i++){
this.spielFeld[1][i].setIcon(img14);
this.spielFeld[1][i+1].setIcon(img13);
this.spielFeld[6][i].setIcon(img1);
this.spielFeld[6][i+1].setIcon(img2);
i = i+1;
}
this.fenster.setResizable(false);
this.fenster.setVisible(true);
}
public void setInfo(String a){
info.setText(a);
}
public void setFeld(int x, int y, int typ, int farbe){
boolean boolx = false;
boolean booly = false;
boolx = isEvenRest(x);
booly = isEvenRest(y);
if(farbe==7){
if(typ==1){
if(boolx==true){
if(booly==true){
this.spielFeld[y][x].setIcon(img1);
}
else{
this.spielFeld[y][x].setIcon(img2);
}
}
else{
if(booly==true){
this.spielFeld[y][x].setIcon(img2);
}
else{
this.spielFeld[y][x].setIcon(img1);
}
}
}
if(typ==2){
if(boolx==true){
if(booly==true){
this.spielFeld[y][x].setIcon(img3);
}
else{
this.spielFeld[y][x].setIcon(img4);
}
}
else{
if(booly==true){
this.spielFeld[y][x].setIcon(img4);
}
else{
this.spielFeld[y][x].setIcon(img3);
}
}
}
if(typ==3){
if(boolx==true){
if(booly==true){
this.spielFeld[y][x].setIcon(img11);
}
else{
this.spielFeld[y][x].setIcon(img12);
}
}
else{
if(booly==true){
this.spielFeld[y][x].setIcon(img12);
}
else{
this.spielFeld[y][x].setIcon(img11);
}
}
}
if(typ==4){
if(boolx==true){
if(booly==true){
this.spielFeld[y][x].setIcon(img9);
}
else{
this.spielFeld[y][x].setIcon(img10);
}
}
else{
if(booly==true){
this.spielFeld[y][x].setIcon(img10);
}
else{
this.spielFeld[y][x].setIcon(img9);
}
}
}
if(typ==5){
if(boolx==true){
if(booly==true){
this.spielFeld[y][x].setIcon(img7);
}
else{
this.spielFeld[y][x].setIcon(img8);
}
}
else{
if(booly==true){
this.spielFeld[y][x].setIcon(img8);
}
else{
this.spielFeld[y][x].setIcon(img7);
}
}
}
if(typ==6){
if(boolx==true){
if(booly==true){
this.spielFeld[y][x].setIcon(img5);
}
else{
this.spielFeld[y][x].setIcon(img6);
}
}
else{
if(booly==true){
this.spielFeld[y][x].setIcon(img6);
}
else{
this.spielFeld[y][x].setIcon(img5);
}
}
}
else{
if(typ==1){
if(boolx==true){
if(booly==true){
this.spielFeld[y][x].setIcon(img13);
}
else{
this.spielFeld[y][x].setIcon(img14);
}
}
else{
if(booly==true){
this.spielFeld[y][x].setIcon(img14);
}
else{
this.spielFeld[y][x].setIcon(img13);
}
}
}
if(typ==2){
if(boolx==true){
if(booly==true){
this.spielFeld[y][x].setIcon(img15);
}
else{
this.spielFeld[y][x].setIcon(img16);
}
}
else{
if(booly==true){
this.spielFeld[y][x].setIcon(img16);
}
else{
this.spielFeld[y][x].setIcon(img15);
}
}
}
if(typ==3){
if(boolx==true){
if(booly==true){
this.spielFeld[y][x].setIcon(img23);
}
else{
this.spielFeld[y][x].setIcon(img24);
}
}
else{
if(booly==true){
this.spielFeld[y][x].setIcon(img24);
}
else{
this.spielFeld[y][x].setIcon(img23);
}
}
}
if(typ==4){
if(boolx==true){
if(booly==true){
this.spielFeld[y][x].setIcon(img21);
}
else{
this.spielFeld[y][x].setIcon(img22);
}
}
else{
if(booly==true){
this.spielFeld[y][x].setIcon(img22);
}
else{
this.spielFeld[y][x].setIcon(img21);
}
}
}
if(typ==5){
if(boolx==true){
if(booly==true){
this.spielFeld[y][x].setIcon(img19);
}
else{
this.spielFeld[y][x].setIcon(img20);
}
}
else{
if(booly==true){
this.spielFeld[y][x].setIcon(img20);
}
else{
this.spielFeld[y][x].setIcon(img19);
}
}
}
if(typ==6){
if(boolx==true){
if(booly==true){
this.spielFeld[y][x].setIcon(img17);
}
else{
this.spielFeld[y][x].setIcon(img18);
}
}
else{
if(booly==true){
this.spielFeld[y][x].setIcon(img18);
}
else{
this.spielFeld[y][x].setIcon(img17);
}
}
}
}
}
}
public boolean isEvenRest(int n) {
return ((n % 2) == 0) ? true : false;
}
}