Назначение кода : Создать две кнопки (button1 и button2). Когда пользователь нажимает кнопку 1, измените текст кнопки 2. Когда пользователь нажимает кнопку 2, измените текст кнопки 1.
Вот код, который я использую:
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) Как отследить ошибки времени выполнения?