/*
* 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);
}
}
}
}
jasimp 427 Senior Poster Featured Poster
What is your question?
beelzibub -3 Newbie Poster
... 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);
}
}
}
}
jasimp commented: any pointers on what? we can't read your mind -1
Alex Edwards 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.