Подскажите пожалуйста. Дан код следующий(из книги). при запуске кода вылетает ошибка NulPointerException on ActionListener. Подскажите,что не так.
В качестве listener передается сам объект gui. Объект gui инициализирован. Значит он не null.
NullPointerException вылетает именно в строке 25 (button). Из этого вывод, что ActionListener(в этом случае за него gui) не находит объект JButton по имени button, чтобы поселить в него текст. Значит button в строке 25 не инициализирован.
button инициализирован в методе go, но текст buttonа меняется в другом методе класса SimpleGui1B - actionPerformed. Беда в том, что из другого метода класса не виден объект, инициализированный в методе go. А виден тот JButton button, который указан параметром класса SimpleGui1B, который нигде не был инициализирован (почему, думаю видно из кода. Если не видно: создался объект gui, но в конструкторе не инициализирован параметр этого объекта).
Поэтому надо создать ActionListener, у которого нет параметра button, т.е. поступить классически - создать безымянный класс внутри метода go, у которого не будет других вариантов, кроме как видеть инициализированный внутри go объект JButton button и заселить в него текст (см. ниже).
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class SimpleGui1B implements ActionListener {
private JButton button;
public static void main(String[] args) {
SimpleGui1B gui = new SimpleGui1B();
gui.go();
}
private void go() {
JFrame frame = new JFrame();
JButton button = new JButton("click me");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
button.setText("I've been clicked");
}
});
frame.getContentPane().add(button);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setSize(300, 300);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
button.setText("I've been clicked");
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Итак, я подключаю к проекту Spring SecurityДобавил две библиотеки:
нужно,чтобы когда заходил admin на страницу перенаправляло на одну страницу, и если кто-то другойНаписал метод adminPage и создал admin
товарищиЯ долгое время программировал на Java, сейчас затронул Python и в голове немного помешалось
Задача стоит в том, чтобы удалить все дубли из коллекции, затем отсортировав, преобразовать числа в строкиНикак не могу сообразить, что не так!