控制台到GUI

我试图将我的基于控制台的国际象棋游戏移至GUI。 我现在正在参考这个国际象棋教程,以帮助我开始。 为了测试目的,我目前只在电路板上设置一个白车。 在我的控制台国际象棋程序中,我有一个Rook Class,它决定了Rook如何移动,它是什么颜色,等等。

在教程代码中,他们添加了一块板子,如下所示:

    // Add a few pieces to the board    
    JLabel piece = new JLabel("rl.png");
    JPanel panel = (JPanel) chessBoard.getComponent(0);
    panel.add(piece);

//  my Attempt ---------------------------------------------------//

//      String rook = "Rook";
//      ImageIcon image4 = new ImageIcon("rl.png");
//      Rook firstRook = new Rook(rook, image4);
//      
//      piece = new JLabelfirstRook);
//      panel = (JPanel) chessBoard.getComponent(0);
//      panel.add(piece);

然后,车可以全部移动,因为它没有任何移动规则适用于它。 我想把我的白菜班与JLabel作品联系起来,这样这个车就受到移动规则的约束。 因此,我的问题是:

我怎样才能将我的控制台Rook Class连接到板上的Rook? 是否有更好的方法来做到这一点? 任何帮助表示赞赏,我已经在网上寻求帮助,并没有取得成功。 谢谢!

我的车族:

public class RookTest extends ChessPiece
{ 

String name;
ImageIcon visualRep; //= new ImageIcon("rl.png");

public RookTest(String name, ImageIcon visualRep)
{
    this.name = name;
    this.visualRep = visualRep; 
}   

public String setInBoard() {
    return "| " + name + " |";
}


public String getName()
{
    return name;
}

public String getColor()
{
    String pieceColor = null;
    if (name.equals("r"))
    {
        pieceColor = "d";
    }
    else if (name.equals("R"))
    {
        pieceColor = "l";
    }
    return pieceColor;  
}

public String toString() {
    //something to find the color in here
    return "Rook";
}

//legal moves
//-------------------------------------------------------------------------------------------------------//

public boolean legalMove(ChessPiece[][] chess, int startY, int startX, int endY, int endX) 
{
    boolean thisIsAValidMove = false;

    //MOVING NORTH-SOUTH //if its in the same column and not in the same row//
    if (startY == endY && startX != endX ) 
        thisIsAValidMove = true;

    //MOVING EAST-WEST // if its in the same row but not the same column//
    else if(startX == endX && startY != endY)
        thisIsAValidMove = true;
    else
        thisIsAValidMove = false;
    return thisIsAValidMove;
}
//-------------------------------------------------------------------------------------------------------//
链接地址: http://www.djcxy.com/p/84649.html

上一篇: console to GUI

下一篇: Using the Universal Chess Interface