从静态方法的鼠标侦听器修改全局定义的静态变量

时间:2012-04-26 17:10:21

标签: java static global-variables static-methods

我正在尝试修改以下全局定义的变量:

static int players;

来自以下方法:

public static void selectPlayers() {

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

这对变量没有影响。变量是全局的,因此可以从main方法访问它。修改变量的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

如果我没错,玩家属性不是方法。访问静态attribut必须通过他的班级名称

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;
    }
 });
 }
}

答案 1 :(得分:1)

要访问正确的players变量,您需要在适当的位置调用它,换句话说,无论在哪个类中定义它。

如果它在同一个班级,请致电this.players = 1。如果是在另一个班级,您应该拨打className.players = 1。如果您的代码编译,则意味着您要修改同一类中的局部变量或全局变量,而您需要的是另一个。