0
grid=new JButton[width][length];
for(y=0;y<length;y++){
    for(x=0;x<width;x++){
        final Border border=new LineBorder(Color.red, 5);
            grid[x][y]=new JButton(" ");
            grid[x][y].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                ((JButton)e.getSource()).setBorder(border);;
                System.out.println("Where do you want to move this piece");
            }
        });
        frame.add(grid[x][y]);

    }
}
grid[1][1]='R';

我试图让网格的第一个位置说出 Rook 中的字母 R;我不确定如何在网格中标记特定的 JButton。请帮助我...我正在尝试制作一个 GUI 国际象棋游戏。

4

2 回答 2

4

使用方法而不是=Swing

grid[0][0].setText("R");
于 2013-09-13T20:34:58.833 回答
4

这不会编译:

grid[1][1]='R';

因为您试图将 char 分配给 JButton。而是了解网格包含 JButton,并调用 JButton 方法:

grid[0][0].setText("R");

此外,您不想这样做:

System.out.println("Where do you want to move this piece");

将 println 语句和 GUI 结合起来是个坏主意(除非您正在调试)。相反,在 JLabel 中显示该字符串。

于 2013-09-13T20:35:03.460 回答