Java chess square image -
i've asked question before , didn't answer.
i'm designing chessboard in java, success. need add background image pc each square on board, i've written alternate between blue , white.
what add code change that?
my code:
import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; public class chessboard extends jframe implements mouselistener, mousemotionlistener { jlayeredpane layeredpane; jpanel chessboard; jlabel chesspiece; int xadjustment; int yadjustment; public chessboard(){ dimension boardsize = new dimension(600, 600); // use layered pane this application layeredpane = new jlayeredpane(); getcontentpane().add(layeredpane); layeredpane.setpreferredsize(boardsize); layeredpane.addmouselistener(this); layeredpane.addmousemotionlistener(this); //add chess board layered pane chessboard = new jpanel(); layeredpane.add(chessboard, jlayeredpane.default_layer); chessboard.setlayout( new gridlayout(8, 8) ); chessboard.setpreferredsize( boardsize ); chessboard.setbounds(0, 0, boardsize.width, boardsize.height); (int = 0; < 64; i++) { jpanel square = new jpanel( new borderlayout() ); chessboard.add( square ); int row = (i / 8) % 2; if (row == 0) square.setbackground( % 2 == 0 ? color.blue : color.white ); else square.setbackground( % 2 == 0 ? color.white : color.blue ); } jlabel piece = new jlabel( new imageicon("/users/downloads/pieces/rook.jpg") ); jpanel panel = (jpanel)chessboard.getcomponent(0); panel.add(piece); piece = new jlabel(new imageicon("/users/downloads/pieces/knight.jpg")); panel = (jpanel)chessboard.getcomponent(1); panel.add(piece); piece = new jlabel(new imageicon("/users/downloads/pieces/king.jpg")); panel = (jpanel)chessboard.getcomponent(2); panel.add(piece); piece = new jlabel(new imageicon("/users/downloads/pieces/queen.jpg")); panel = (jpanel)chessboard.getcomponent(3); panel.add(piece); piece = new jlabel(new imageicon("/users/downloads/pieces/bishop.jpg")); panel = (jpanel)chessboard.getcomponent(4); panel.add(piece); piece = new jlabel(new imageicon("/users/downloads/pieces/knight.jpg")); panel = (jpanel)chessboard.getcomponent(5); panel.add(piece); piece = new jlabel(new imageicon("/users/downloads/pieces/bishop.jpg")); panel =(jpanel)chessboard.getcomponent(6); panel.add(piece); piece = new jlabel(new imageicon("/users/downloads/pieces/rook.jpg")); panel =(jpanel)chessboard.getcomponent(7); panel.add(piece); piece = new jlabel(new imageicon("/users/downloads/pieces/pawn.jpg")); panel =(jpanel)chessboard.getcomponent(9); panel.add(piece); piece = new jlabel(new imageicon("/users/downloads/pieces/pawn.jpg")); panel =(jpanel)chessboard.getcomponent(10); panel.add(piece); piece = new jlabel(new imageicon("/users/downloads/pieces/pawn.jpg")); panel =(jpanel)chessboard.getcomponent(11); panel.add(piece); piece = new jlabel(new imageicon("/users/downloads/pieces/pawn.jpg")); panel =(jpanel)chessboard.getcomponent(12); panel.add(piece); piece = new jlabel(new imageicon("/users/downloads/pieces/pawn.jpg")); panel =(jpanel)chessboard.getcomponent(13); panel.add(piece); piece = new jlabel(new imageicon("/users/downloads/pieces/pawn.jpg")); panel =(jpanel)chessboard.getcomponent(14); panel.add(piece); piece = new jlabel(new imageicon("/users/downloads/pieces/pawn.jpg")); panel =(jpanel)chessboard.getcomponent(15); panel.add(piece); piece = new jlabel(new imageicon("/users/downloads/pieces/pawn.jpg")); panel =(jpanel)chessboard.getcomponent(8); panel.add(piece); } public void mousepressed(mouseevent e){ chesspiece = null; component c = chessboard.findcomponentat(e.getx(), e.gety()); if (c instanceof jpanel) return; point parentlocation = c.getparent().getlocation(); xadjustment = parentlocation.x - e.getx(); yadjustment = parentlocation.y - e.gety(); chesspiece = (jlabel)c; chesspiece.setlocation(e.getx() + xadjustment, e.gety() + yadjustment); chesspiece.setsize(chesspiece.getwidth(), chesspiece.getheight()); layeredpane.add(chesspiece, jlayeredpane.drag_layer); } //move chess piece around public void mousedragged(mouseevent me) { if (chesspiece == null) return; c hesspiece.setlocation(me.getx() + xadjustment, me.gety() + yadjustment); } public void mousereleased(mouseevent e) { if(chesspiece == null) return; chesspiece.setvisible(false); component c = chessboard.findcomponentat(e.getx(), e.gety()); if (c instanceof jlabel){ container parent = c.getparent(); parent.remove(0); parent.add( chesspiece ); } else { container parent = (container)c; parent.add( chesspiece ); } chesspiece.setvisible(true); } public void mouseclicked(mouseevent e) { } public void mousemoved(mouseevent e) { } public void mouseentered(mouseevent e){ } public void mouseexited(mouseevent e) { } public static void main(string[] args) { jframe frame = new chessboard(); frame.setdefaultcloseoperation(dispose_on_close ); frame.pack(); frame.setresizable(true); frame.setlocationrelativeto( null ); frame.setvisible(true); } }
for each square, you'll want set image jpanel instead of changing color. how add image jpanel?
Comments
Post a Comment