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 を組み合わせるのは悪い考えです (デバッグしている場合を除きます)。むしろ、その String を JLabel で表示します。

于 2013-09-13T20:35:03.460 に答える