1

次のグローバルに定義された変数を変更しようとしています:

static int players;

次の方法から:

public static void selectPlayers() {

    JButton player1 = new JButton("1 Player");
    player1.addMouseListener(new MouseAdapter() {
        public void mousePressed(MouseEvent arg0) {
            players = 1;
        }
    });
}

これは変数には影響しません。変数はグローバルであるため、メイン メソッドからアクセスできます。変数を変更する最良の方法は何ですか?

4

2 に答える 2

3

私が間違っていなければ、プレーヤーはメソッドではなく属性です。静的属性にアクセスするには、クラスの名前を使用する必要があります

public Class1{

 static int players;

 public static void selectPlayers() {

   JButton player1 = new JButton("1 Player");
   player1.addMouseListener(new MouseAdapter() {
     public void mousePressed(MouseEvent arg0) {
        Class1.players = 1;
    }
 });
 }
}
于 2012-04-26T17:20:06.853 に答える
1

正しい変数にアクセスするplayersには、適切な場所、つまり変数が定義されているクラスで呼び出す必要があります。

同じクラスの場合は、 を呼び出しますthis.players = 1。別のクラスにある場合は、 を呼び出す必要がありますclassName.players = 1。コードがコンパイルされる場合は、同じクラスのローカル変数またはグローバル変数のいずれかを変更し、必要なものは別のクラスにあることを意味します。

于 2012-04-26T17:27:22.200 に答える