コードの目的: 2 つのボタン (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)
これまで、コンパイル時エラーのみに遭遇しました。そこで、私が聞きたい質問が 2 つあります。
1) コードの何が問題になっていますか? 2) 実行時エラーを追跡する方法は?