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。如果您的代码进行编译,则表示您正在修改同一类中的局部变量或全局变量,而您需要的变量在另一个类中。请注意,它是一个静态变量。使用它是合法的,但会产生误导。请注意,它是一个静态变量。使用它是合法的,但会产生误导。