Java chess game projects with source code

File: chess.java

import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
public class chess extends JFrame
{
   public static void main(String[] args)
     {
	JFrame.setDefaultLookAndFeelDecorated(true); 
        JFrame frame = new JFrame("Chess Game"); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        chessGUI chessWindow = new chessGUI();
        frame.setContentPane(chessWindow.createGUI(frame));
        frame.addWindowFocusListener(chessWindow);
        frame.setSize(550,650);
        frame.setResizable(false);
        frame.setVisible(true);  
        frame.pack();          
     }	
}

File: chessGUI.java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JOptionPane;
public class chessGUI implements ActionListener, KeyListener, WindowFocusListener
 {
	private windowChessBoard mainChessBoard;
	private objCreateAppletImage createImage;
	private JButton cmdNewGame, cmdSetNames;
	private JTextField txtPlayerOne, txtPlayerTwo;
	private JLabel lblPlayerOne, lblPlayerTwo;
	private String[] strRedPieces = {"redPawn.gif","redRock.gif","redKnight.gif","redBishop.gif","redQueen.gif","redKing.gif"};
	private String[] strBluePieces = {"bluePawn.gif","blueRock.gif","blueKnight.gif","blueBishop.gif","blueQueen.gif","blueKing.gif"};
	private Color clrBlue = new Color(0,68,136);
	private MediaTracker mt;
 public void chessGUI ()
	{
	}
 public Container createGUI (JFrame mainApp)
	{
		JPanel panRoot = new JPanel(new BorderLayout());
		panRoot.setOpaque(true);
	    panRoot.setPreferredSize(new Dimension(550,650));
		mainChessBoard = new windowChessBoard();
		createImage = new objCreateAppletImage();
		mainChessBoard.setSize(new Dimension(500, 500));
		cmdNewGame = new JButton("New Game");
		cmdSetNames = new JButton("Set Names");
		cmdNewGame.addActionListener(this);
		cmdSetNames.addActionListener(this);
		txtPlayerOne = new JTextField("Veerle", 10);
		txtPlayerTwo = new JTextField("Natasja", 10);
		txtPlayerOne.addKeyListener(this);
		txtPlayerTwo.addKeyListener(this);
		lblPlayerOne = new JLabel("    ", JLabel.RIGHT);
		lblPlayerTwo = new JLabel("    ", JLabel.RIGHT);
		try
		{
		    Image[] imgRed = new Image[6];
			Image[] imgBlue = new Image[6];
			mt = new MediaTracker(mainApp);
			for (int i = 0; i < 6; i++)
			{				
			    imgRed[i] = createImage.getImage(this, "images/" + strRedPieces[i], 5000);
				imgBlue[i] = createImage.getImage(this, "images/" + strBluePieces[i], 5000);
				mt.addImage(imgRed[i], 0);
				mt.addImage(imgBlue[i], 0);
            }
		   try
			{
				mt.waitForID(0);
			}
			catch (InterruptedException e)
			{
			}
		   mainChessBoard.setupImages(imgRed, imgBlue);
	        }
		catch (NullPointerException e)
		{
			JOptionPane.showMessageDialog(null, "Unable to load images. Try downloading this programme again", "Unable to load images", JOptionPane.WARNING_MESSAGE);
			cmdNewGame.setEnabled(false);
			cmdSetNames.setEnabled(false);
	    }
		JPanel panBottomHalf = new JPanel(new BorderLayout());
		JPanel panNameArea = new JPanel(new GridLayout(3,1,2,2));
		JPanel panPlayerOne = new JPanel();
		JPanel panPlayerTwo = new JPanel();
		JPanel panNameButton = new JPanel();
		JPanel panNewGame = new JPanel();
		panRoot.add(mainChessBoard, BorderLayout.NORTH);
		panRoot.add(panBottomHalf, BorderLayout.SOUTH);
			panBottomHalf.add(panNameArea, BorderLayout.WEST);
				panNameArea.add(panPlayerOne);
					panPlayerOne.add(lblPlayerOne);
					panPlayerOne.add(txtPlayerOne);
				panNameArea.add(panPlayerTwo);
					panPlayerTwo.add(lblPlayerTwo);
					panPlayerTwo.add(txtPlayerTwo);
				panNameArea.add(panNameButton);
					panNameButton.add(cmdSetNames);
			panBottomHalf.add(panNewGame, BorderLayout.SOUTH);
				panNewGame.add(cmdNewGame);
		panRoot.setBackground(clrBlue);
		panBottomHalf.setBackground(clrBlue);
		panNameArea.setBackground(clrBlue);
		panPlayerOne.setBackground(clrBlue);
		panPlayerTwo.setBackground(clrBlue);
		panNameButton.setBackground(clrBlue);
		panNewGame.setBackground(clrBlue);
		lblPlayerOne.setBackground(new Color(165,42,42)); //red
		lblPlayerTwo.setBackground(new Color(17,27,237)); //blue
		cmdNewGame.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
		return panRoot;
    }
	public void actionPerformed(ActionEvent e)
	{
		if (e.getSource() == cmdSetNames)
		{
			if (txtPlayerOne.getText().equals(""))
			{
				txtPlayerOne.setText("Veerle");
			}
			if (txtPlayerTwo.getText().equals(""))
			{
				txtPlayerTwo.setText("Natasja");
			}
			mainChessBoard.setNames(txtPlayerOne.getText(), txtPlayerTwo.getText());
		}
		else if (e.getSource() == cmdNewGame)
		{
			mainChessBoard.newGame();
		}
		
	}
	public void keyTyped(KeyEvent e)
	{
		String strBuffer = "";
		char c = e.getKeyChar();
		if (e.getSource() == txtPlayerOne)
		{
			strBuffer = txtPlayerOne.getText();
		}
		else
		{
			strBuffer = txtPlayerTwo.getText();
		}
		if (strBuffer.length() > 10 && !((c == KeyEvent.VK_BACK_SPACE) || (c == KeyEvent.VK_DELETE)))
		{
			e.consume();
		}
	}
	public void keyPressed(KeyEvent e)
	{
	}
	public void keyReleased(KeyEvent e)
	{
	}
	public void windowGainedFocus (WindowEvent e)
	{
		mainChessBoard.gotFocus();
	}
	public void windowLostFocus (WindowEvent e)
	{
	}
	}

Output:

Java chess game projects with source code

Leave a Reply

Your email address will not be published. Required fields are marked *