0
我正嘗試使用JavaFX創建一個國際象棋遊戲,並且我發現使匹配歷史記錄相當棘手,在成功打印歷史記錄後,我試圖添加posible返回某些棋盤狀態。JavaFX覆蓋對象
我試過這種方法,但它不會工作: 第一部分是從我的控制器代碼段初始化函數
table.setRowFactory(tv -> {
TableRow<Move> move = new TableRow<Move>();
move.setOnMouseClicked(event -> {
if(event.getClickCount()==2 && !move.isEmpty())
setBoardTo(move.getItem());
else
System.out.println("kek");
});
return move;
});
然後,我們有我們在(它的工作原理)去的功能,但即使在將電路板更換爲另一個電路板並重新繪製之後,它看起來也是如此。
private void setBoardTo(Move move){
System.out.println(move.boardState.toString());
System.out.println(board.toString());
board.setBoard(move.boardState);
board.draw();
}
在Board類中用於分配值的函數。
public void setBoard(Board another){
this.boardFigures = another.boardFigures;
this.highlightedFields = another.highlightedFields;
this.hasHighlightedFields = another.hasHighlightedFields;
}
最後的部分是一個片段從我的移動類(它包含了移動的信息,但我把它割下來,使代碼看起來更乾淨)
public class Move {
private static int globalID=0;
public int ID;
final Board boardState;
public Move(Board board){
ID=globalID++;
boardState = new Board(board);}
我在做什麼錯?如果需要其他東西,我會盡快將其粘貼。
感謝,roiek
你可以問一個具體的問題,而不是發佈代碼片段。什麼不工作?你遇到了什麼錯誤?請僅發佈相關代碼 – smac89
問題是,在SetBoard函數中,我檢查了move.BoardState與board(通過toString)不同,但仍然在畫布上獲得相同的輸出 – user3476159