/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author beelzibub
 */



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


class ChessBoard extends JFrame implements MouseListener, MouseMotionListener {

    GridLayout Board = new GridLayout(8, 8);
    GridChessBoard brd;
    int xMove, yMove, labelw, labelh;
    JLabel label;
    int Xpos, Ypos;
    String[] manrow = {"Pawn0", "Pawn1", "Pawn2", "Pawn3", "Pawn4", "Pawn5", "Pawn6", "Pawn7"};
    String[] manrowx = {"Pawn0", "Pawn1", "Pawn2", "Pawn3", "Pawn4", "Pawn5", "Pawn6", "Pawn7"};
    String[] piecerow = {"Rook", "Knight", "Bishop", "Queen", "King", "Bishop", "Knight", "Rook"};
    String[] piecerowx = {"Rook", "Knight", "Bishop", "Queen", "King", "Bishop", "Knight", "Rook"};// update these labels position, which is parent jpanel, at each move
    JPanel[][] grids;
    JLabel[][] pieces;
    Dimension pieceSize = new Dimension(100, 100);
    Container con;
    Component DraggingComp;
    GridLayout board;    
    ChessBoard cb;
   GridChessBoard gcb; // = new GridChessBoard(); 
    
    public ChessBoard() {
        
        super("ChessBoard");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        board = new GridLayout(8, 8); 
        Board.setHgap(4);
        Board.setVgap(4);
        Dimension boardSize = new Dimension(800, 800);
        con = getContentPane();
        setContentPane(new GridChessBoard());//gcb);
        con.addMouseListener(this);
        con.addMouseMotionListener(this);
        grids = new JPanel[8][8];
        pieces = new JLabel[8][8];
        label = new JLabel("0123456789");
        Dimension d = label.getPreferredSize();
        labelw = d.width;
        labelh = d.height;
        label.setBounds(Xpos, Ypos, labelw, labelh);

        setDefaultCloseOperation(EXIT_ON_CLOSE);
        for (int i = 0; i < 8; ++i) {
            for (int j = 0; j < 8; ++j) {
                addSquares(i, j);
            }
        }

        setSize(boardSize);
        setVisible(true);
    } // end constructor

    public JFrame addAction(JFrame frame) {
        frame.getContentPane().addMouseMotionListener(this);
        return frame;
    }

    public void seeIt(Component c) {
        System.out.println("in seeIt");
        add(c);
        ((JPanel) con).revalidate();
    }
    
   

    public void moveComponent(Component c, int newX, int newY, int width, int height) {
        c.setBounds(newX, newY, width, height);
        seeIt(c);
    }

    public String getMan(int i) {
        return manrow[i];
    }

    public String getPiece(int i) {
        return piecerow[i];
    }

    public boolean isOdd(int i) {
        return i % 2 != 0;
    }

    public boolean isEven(int i) {
        return i % 2 == 0;
    }

    public JLabel setBlue(JLabel b1) {
        b1.setOpaque(true);
        b1.setBackground(Color.blue);
        return b1;
    }

    public JLabel setYellow(JLabel b1) {
        b1.setOpaque(true);
        b1.setBackground(Color.yellow);
        return b1;
    }

    public void addColors() {
        for (int i = 0; i < 64; i++) {
            JLabel square = new JLabel(); //new BorderLayout());
            square.setOpaque(true);
            Board.addLayoutComponent(null, square);

            int row = (i / 8) % 2;
            if (row == 0) {
                square.setBackground(i % 2 == 0 ? Color.blue : Color.yellow);
            } else {
                square.setBackground(i % 2 == 0 ? Color.yellow : Color.blue);
            }
        }
    }

    public JLabel addBlankRow(int i, int j) {
        JLabel square = new JLabel();
        square.setOpaque(true);

        if (isEven(j)) {
            setBackground(i % 2 == 0 ? Color.yellow : Color.blue);
        } else {
            setBackground(i % 2 == 0 ? Color.blue : Color.yellow);
        }
        return square;
    }

    public JLabel addManRow(int i, int j) {
        String[] m = i == 1 ? manrowx : manrow;
        JLabel square = new JLabel();
        square.setOpaque(true);

        int col = j + 1;
        if (isEven(col)) {
            square.add((new JLabel(m[j])), JLabel.CENTER);
        } else {
            square.add((new JLabel(m[j])), JLabel.CENTER);
        }
        return square;
    }

    public JLabel addPieceRow(int i, int j) {
        String[] m = i == 1 ? piecerow : piecerowx;
        JLabel square = new JLabel();
        square.setOpaque(true);

        int col = j;
        if (isEven(col) && (col < 8)) {
            add(setYellow(new JLabel(m[j])), JLabel.CENTER);
        } else {
            add(setBlue(new JLabel(m[j])), JLabel.CENTER);
        }
        return square;
    }

    public JLabel addPieceRowx(int i, int j) {
        String[] m = i == 1 ? piecerowx : piecerow;
        JLabel square = new JLabel();
        square.setOpaque(true);

        int col = j + 1;
        if (isEven(col)) {
            square.add((new JLabel(m[j])), JLabel.CENTER);
        } else {
            square.add((new JLabel(m[j])), JLabel.CENTER);
        }
        return square;
    }

    public JLabel addManRowx(int i, int j) {
        String[] m = i == 1 ? manrowx : manrow;
        JLabel square = new JLabel();
        square.setOpaque(true);

        int col = j + 1;
        if (isEven(col)) {
            square.add(setBlue(new JLabel(m[j])), JLabel.CENTER);
        } else {
            square.add(setYellow(new JLabel(m[j])), JLabel.CENTER);
        }
        return square;
    }

    public void mousePressed(MouseEvent me) {
        System.out.println("in mouse pressed");

        // get orriginal coordinates
        if (DraggingComp != null) {
            Xpos = me.getX();
            Ypos = me.getY();
            DraggingComp = getComponentAt(Xpos, Ypos);
        }

    }

    public void mouseDragged(MouseEvent me) {

        System.out.println("in mouse dragged");
        DraggingComp = con.getComponentAt(Xpos, Ypos);
        if (DraggingComp == null) {
            return;
        } else {
            Xpos = getX();
            Ypos = getY();
        }
        moveComponent(DraggingComp, Xpos, Ypos, labelw, labelh);

    }

    public void mouseReleased(MouseEvent me) {
    }

    public void mouseEntered(MouseEvent me) {
    }

    public void mouseExited(MouseEvent me) {
    }

    public void mouseMoved(MouseEvent me) {
    }

    public void mouseClicked(MouseEvent me) {
    }

    public void addSquares(int i, int j) {
        JLabel square = new JLabel();
        square.setLayout(new BorderLayout());
        square.setOpaque(true);
        int col = j;
        int row = i;
        switch (row) {
            case 0:
                square = addPieceRow(row, col);
                break;
            case 1:
                square = addManRow(row, col);
                break;
            case 2:
                square = addBlankRow(row, col);
                break;
            case 3:
                square = addBlankRow(row, col);
                break;
            case 4:
                square = addBlankRow(row, col);
                break;
            case 5:
                square = addBlankRow(row, col);
                break;
            case 6:
                square = addManRowx(row, col);
                break;
            case 7:
                square = addPieceRowx(row, col);
                break;
        }
        square.setBounds(row, col, labelw, labelh);
        con.add(square);
    //return;
    }

  
    public static void main(String[] args) { 
        GridChessBoard gcb; //  = new GridChessBoard();
        new ChessBoard();
    }

static class GridChessBoard extends ChessBoard{
        JFrame frame;
        Container cn;
        
        public GridChessBoard(){
            frame = new JFrame("Chess Board made by Hiroshi Iwatani");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            cn = frame.getContentPane();

            cn.setLayout(new GridLayout(8, 8));
            for (int i = 0; i < 64; i++) {
                JPanel square = new JPanel(new BorderLayout());
                cn.add(square);

                int row = (i / 8) % 2;
                if (row == 0) {
                    square.setBackground(i % 2 == 0 ? Color.green : Color.yellow);
                } else {
                    square.setBackground(i % 2 == 0 ? Color.yellow : Color.green);
                }


                frame.setSize(600, 600);
                frame.setVisible(true);              
            }
        }
 }
}

Recommended Answers

All 2 Replies

What is your question?

... as i said 'i'm trying, any pointers?': attached pls find todays code attempts:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author beelzibub
 */



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


class ChessBoard extends JFrame implements MouseListener, MouseMotionListener {

    GridLayout Board = new GridLayout(8, 8);
    GridChessBoard brd = new GridChessBoard();
    int xMove, yMove, labelw, labelh;
    JLabel label;
    int Xpos, Ypos;
    String[] manrow = {"Pawn0", "Pawn1", "Pawn2", "Pawn3", "Pawn4", "Pawn5", "Pawn6", "Pawn7"};
    String[] manrowx = {"Pawn0", "Pawn1", "Pawn2", "Pawn3", "Pawn4", "Pawn5", "Pawn6", "Pawn7"};
    String[] piecerow = {"Rook", "Knight", "Bishop", "Queen", "King", "Bishop", "Knight", "Rook"};
    String[] piecerowx = {"Rook", "Knight", "Bishop", "Queen", "King", "Bishop", "Knight", "Rook"};// update these labels position, which is parent jpanel, at each move
    JPanel[][] grids;
    JLabel[][] pieces;
    Dimension pieceSize = new Dimension(100, 100);
    Container con;
    Component DraggingComp;
    GridLayout board;    
    ChessBoard cb;
    GridChessBoard gcb;
    
    public ChessBoard() {
        
        super("ChessBoard");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        board = new GridLayout(8, 8); 
        Board.setHgap(4);
        Board.setVgap(4);
        Dimension boardSize = new Dimension(800, 800);
        con = getContentPane();
        con.setLayout((LayoutManager) new GridChessBoard());
        //con = getContentPane();
        con.addMouseListener(this);
        con.addMouseMotionListener(this);
        grids = new JPanel[8][8];
        pieces = new JLabel[8][8];
        label = new JLabel("0123456789");
        Dimension d = label.getPreferredSize();
        labelw = d.width;
        labelh = d.height;
        label.setBounds(Xpos, Ypos, labelw, labelh);

        setDefaultCloseOperation(EXIT_ON_CLOSE);
        for (int i = 0; i < 8; ++i) {
            for (int j = 0; j < 8; ++j) {
                addSquares(i, j);
            }
        }

        setSize(boardSize);
        setVisible(true);
    } // end constructor

    public JFrame addAction(JFrame frame) {
        frame.getContentPane().addMouseMotionListener(this);
        return frame;
    }

    public void seeIt(Component c) {
        System.out.println("in seeIt");
        add(c);
        ((JPanel) con).revalidate();
    }
    
   

    public void moveComponent(Component c, int newX, int newY, int width, int height) {
        c.setBounds(newX, newY, width, height);
        seeIt(c);
    }

    public String getMan(int i) {
        return manrow[i];
    }

    public String getPiece(int i) {
        return piecerow[i];
    }

    public boolean isOdd(int i) {
        return i % 2 != 0;
    }

    public boolean isEven(int i) {
        return i % 2 == 0;
    }

    public JLabel setBlue(JLabel b1) {
        b1.setOpaque(true);
        b1.setBackground(Color.blue);
        return b1;
    }

    public JLabel setYellow(JLabel b1) {
        b1.setOpaque(true);
        b1.setBackground(Color.yellow);
        return b1;
    }

    public void addColors() {
        for (int i = 0; i < 64; i++) {
            JLabel square = new JLabel(); //new BorderLayout());
            square.setOpaque(true);
            Board.addLayoutComponent(null, square);

            int row = (i / 8) % 2;
            if (row == 0) {
                square.setBackground(i % 2 == 0 ? Color.blue : Color.yellow);
            } else {
                square.setBackground(i % 2 == 0 ? Color.yellow : Color.blue);
            }
        }
    }

    public JLabel addBlankRow(int i, int j) {
        JLabel square = new JLabel();
        square.setOpaque(true);

        if (isEven(j)) {
            setBackground(i % 2 == 0 ? Color.yellow : Color.blue);
        } else {
            setBackground(i % 2 == 0 ? Color.blue : Color.yellow);
        }
        return square;
    }

    public JLabel addManRow(int i, int j) {
        String[] m = i == 1 ? manrowx : manrow;
        JLabel square = new JLabel();
        square.setOpaque(true);

        int col = j + 1;
        if (isEven(col)) {
            square.add((new JLabel(m[j])), JLabel.CENTER);
        } else {
            square.add((new JLabel(m[j])), JLabel.CENTER);
        }
        return square;
    }

    public JLabel addPieceRow(int i, int j) {
        String[] m = i == 1 ? piecerow : piecerowx;
        JLabel square = new JLabel();
        square.setOpaque(true);

        int col = j;
        if (isEven(col) && (col < 8)) {
            add(setYellow(new JLabel(m[j])), JLabel.CENTER);
        } else {
            add(setBlue(new JLabel(m[j])), JLabel.CENTER);
        }
        return square;
    }

    public JLabel addPieceRowx(int i, int j) {
        String[] m = i == 1 ? piecerowx : piecerow;
        JLabel square = new JLabel();
        square.setOpaque(true);

        int col = j + 1;
        if (isEven(col)) {
            square.add((new JLabel(m[j])), JLabel.CENTER);
        } else {
            square.add((new JLabel(m[j])), JLabel.CENTER);
        }
        return square;
    }

    public JLabel addManRowx(int i, int j) {
        String[] m = i == 1 ? manrowx : manrow;
        JLabel square = new JLabel();
        square.setOpaque(true);

        int col = j + 1;
        if (isEven(col)) {
            square.add(setBlue(new JLabel(m[j])), JLabel.CENTER);
        } else {
            square.add(setYellow(new JLabel(m[j])), JLabel.CENTER);
        }
        return square;
    }

    public void mousePressed(MouseEvent me) {
        System.out.println("in mouse pressed");

        // get orriginal coordinates
        if (DraggingComp != null) {
            Xpos = me.getX();
            Ypos = me.getY();
            DraggingComp = getComponentAt(Xpos, Ypos);
        }

    }

    public void mouseDragged(MouseEvent me) {

        System.out.println("in mouse dragged");
        DraggingComp = con.getComponentAt(Xpos, Ypos);
        if (DraggingComp == null) {
            return;
        } else {
            Xpos = getX();
            Ypos = getY();
        }
        moveComponent(DraggingComp, Xpos, Ypos, labelw, labelh);

    }

    public void mouseReleased(MouseEvent me) {
    }

    public void mouseEntered(MouseEvent me) {
    }

    public void mouseExited(MouseEvent me) {
    }

    public void mouseMoved(MouseEvent me) {
    }

    public void mouseClicked(MouseEvent me) {
    }

    public void addSquares(int i, int j) {
        JLabel square = new JLabel();
        square.setLayout(new BorderLayout());
        square.setOpaque(true);
        int col = j;
        int row = i;
        switch (row) {
            case 0:
                square = addPieceRow(row, col);
                break;
            case 1:
                square = addManRow(row, col);
                break;
            case 2:
                square = addBlankRow(row, col);
                break;
            case 3:
                square = addBlankRow(row, col);
                break;
            case 4:
                square = addBlankRow(row, col);
                break;
            case 5:
                square = addBlankRow(row, col);
                break;
            case 6:
                square = addManRowx(row, col);
                break;
            case 7:
                square = addPieceRowx(row, col);
                break;
        }
        square.setBounds(row, col, labelw, labelh);
        cb.gcb.add(square);
    //return;
    }

  
    public static void main(String[] args) { 
        GridChessBoard gcb  = new GridChessBoard();
        ChessBoard cb = new ChessBoard();
    }

static class GridChessBoard extends ChessBoard{
        JFrame frame;
        Container cn;
        
        public GridChessBoard(){
            frame = new JFrame("Chess Board made by Hiroshi Iwatani");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            cn = frame.getContentPane();

            cn.setLayout(new GridLayout(8, 8));
            for (int i = 0; i < 64; i++) {
                JPanel square = new JPanel(new BorderLayout());
                cn.add(square);

                int row = (i / 8) % 2;
                if (row == 0) {
                    square.setBackground(i % 2 == 0 ? Color.green : Color.yellow);
                } else {
                    square.setBackground(i % 2 == 0 ? Color.yellow : Color.green);
                }


                frame.setSize(600, 600);
                frame.setVisible(true);              
            }
        }
 }
}
commented: any pointers on what? we can't read your mind -1
commented: Not a good listener when advice is given to him +0
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.