Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从静态方法的鼠标侦听器修改全局定义的静态变量_Java_Static_Global Variables_Static Methods - Fatal编程技术网

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

Java 从静态方法的鼠标侦听器修改全局定义的静态变量,java,static,global-variables,static-methods,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) { play

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

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方法访问它。修改变量的最佳方法是什么?

如果我没有错,那么玩家是属性而不是方法。访问静态属性必须通过其类的名称

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

如果我没有错的话,球员是一种属性而不是一种方法。访问静态属性必须通过其类的名称

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;
    }
 });
 }
}
要访问正确的players变量,您需要在适当的位置调用它,换句话说,不管它在哪个类中定义

如果它在同一个类中,则将其命名为.players=1。如果它在另一个类中,则应调用className.players=1。如果您的代码已编译,则意味着您正在修改同一类中的局部变量或全局变量,而您需要的变量在另一个类中。

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


如果它在同一个类中,则将其命名为.players=1。如果它在另一个类中,则应调用className.players=1。如果您的代码进行编译,则表示您正在修改同一类中的局部变量或全局变量,而您需要的变量在另一个类中。

请注意,它是一个静态变量。使用它是合法的,但会产生误导。请注意,它是一个静态变量。使用它是合法的,但会产生误导。