Я пытаюсь изменить следующую глобально определенную переменную:
static int players;
из следующего метода:
public static void selectPlayers() {
JButton player1 = new JButton("1 Player");
player1.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent arg0) {
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
, вам необходимо вызвать ее в нужном месте, другими словами, какой бы класс не был определен.
если он находится в одном классе, вызовите this.players = 1
. Если он находится в другом классе, вы должны вызвать className.players = 1
. Если ваш код компилируется, это означает, что вы изменяете локальную переменную или глобальную переменную в том же классе, а тот, который вам нужен, находится в другом.