전 세계의 기사를 이동시키고 다른 기사와 싸울 수있는 게임을 만들고 있습니다.JButton 자식이 텍스트를 업데이트하지 않습니다
게임 시작 I 클래스 홈페이지있어:
public class Main {
public static void main(String[] args) {
new Game();
}
}
JFrame의 생성하는 클래스 게임 : (! 당신이 그것을 짐작)
import java.awt.GridLayout;
import javax.swing.JFrame;
public class Game {
public Game() {
JFrame frame = new JFrame();
frame.setTitle("Knights Tournament");
frame.add(new Board());
frame.setSize(700, 700);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
그리고 클래스 보드를 생성 게임 보드 :
public class Board extends JPanel {
Tile[][] grid = new Tile[15][15];
public Board(){
// Create the grid
CreateGrid();
// Add the player
grid[0][0] = new Player(0, 0);
}
// Method that creates a grid of tiles
private void CreateGrid() {
setLayout(new GridLayout (15, 15));
for(int i = 0; i < 15; i++){
for(int j = 0; j < 15; j++){
grid[i][j] = new Tile(i, j);
add(grid[i][j]);
}
}
}
}
그리드 초기 값은 15x15 타일로 구성됩니다.
public class Tile extends JButton implements ActionListener {
public int xCo;
public int yCo;
public Tile(int x, int y) {
setXCo(x);
setYCo(y);
}
public void setXCo(int x) {
this.xCo = x;
}
public void setYCo(int y) {
this.yCo = y;
}
public int getXCo() {
return xCo;
}
public int getYCo() {
return yCo;
}
}
내가 직면 해요 문제는 다음이다 : 나는 그리드를 교체하고 싶습니다 [0] [0] 타일을 확장 다른 클래스의 플레이어. 타일과 선수 사이의 차이가하는 JButton가 'P'를 말하는 텍스트를 얻을 수 있다는 것입니다 나는이 시도했다 : 클래스 보드의 생성자에서
public class Player extends Tile{
public Player(int x, int y) {
super(x, y);
this.setText("P");
}
}
내가 그리드를 변경 시도 [0] [0] 타일에서 플레이어에게 P를 표시 할 것이지만 어떤 이유로 든 그렇게하지는 않습니다 (그리드 [0] [0]의 유형을 플레이어로 변경합니다 ...) 누군가가 도울 수 있기를 바랍니다.
보드에서 보드를 교체하는 대신 기존의 '타이틀'상태를 업데이트하지 않는 이유는 무엇입니까? – MadProgrammer
플레이어 클래스는 '공격', '방어'등과 같은 추가 변수를 얻습니다. 또한 내가 싸울 수있는 적들을 추가 할 것입니다. 타일에 적을 포함하고 있는지 확인하려면 instanceof 함수를 사용하고 싶습니다. ... –
무슨 뜻인지 알면 타일을 플레이어로 교체해야합니다. –