Назначение кода: Создайте две кнопки (button1 и button2). Когда Пользователь нажимает кнопку1, измените текст кнопки2. Когда Пользователь нажимает кнопку2, измените текст кнопки1.NullPointerException при запуске нескольких событий события
Вот код, я использую:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class multiAL {
JButton button1;
JButton button2;
JFrame frame;
public static void main(String[] args) {
multiAL setterAL = new multiAL();
setterAL.go();
}
public void go() {
button1 = new JButton("Click me, I'm One");
button2 = new JButton("Click me, I'm Two");
frame.setSize(500,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(BorderLayout.WEST, button1);
frame.getContentPane().add(BorderLayout.EAST, button2);
frame.setVisible(true);
button1.addActionListener(new b1L());
button2.addActionListener(new b2L());
}
class b1L implements ActionListener {
public void actionPerformed(ActionEvent event) {
button2.setText("What??, you clicked 1??");
}
}
class b2L implements ActionListener {
public void actionPerformed(ActionEvent event) {
button1.setText("What??, you clicked 2??");
}
}
}
Он компилирует прекрасно, но когда я запускаю его я получаю следующее сообщение об ошибке: Exception in thread "main" java.lang.NullPointerException at multiAL.go(multiAL.java:17) at multiAL.main(multiAL.java:11)
До сих пор, я столкнулся только во время компиляции ошибки. Поэтому есть два вопроса, которые я хочу задать:
1) Что не так с кодом? 2) Как отслеживать ошибки времени выполнения?
Число после имени файла дает фактическую линию, где ошибка произошло, кстати. – Gnoupi
См. «Правила для именования» - http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html «Имена классов должны быть существительными в смешанном случае с первой буквой каждого внутреннего слова, заглавного. Постарайтесь, чтобы ваши имена классов были простыми и описательными. Используйте целые слова - избегайте сокращений и сокращений. –
Я буду помнить это в следующий раз. – MoonStruckHorrors