使程序在netbeans中使用jframe设计,然后添加我创建的二叉树类。当我在按钮事件上调用方法类Tree时,出现“线程异常”错误AWT-EventQueue-1“ java.lang.NullPointerException”
类节点{
public int no;
public String pertanyaan;
public char jawaban;
public Node left;
public Node right;
public void displayNode() {
System.out.print("{" + no + ", " + pertanyaan + ", " + jawaban + "}");
}
}
class Tree {
Node root;
Node baru;
String string2;
public Tree() {
root = null;
}
public String getLeft() {
if (baru == null) {
baru = root;
}
baru = baru.left;
string2 = baru.pertanyaan;
return string2;
}
public String getRight() {
if (baru == null) {
baru = root;
}
baru = baru.right;
string2 = baru.pertanyaan;
return string2;
}
public Node find(int key) {
Node current = root;
while (current.no != key) {
if (key < current.no) {
current = current.left;
} else {
current = current.right;
}
if (current == null) {
return null;
}
}
return current;
}
public void insert(int id, String data, char jawaban) {
Node newNode = new Node();
newNode.no = id;
newNode.pertanyaan = data;
newNode.jawaban = jawaban;
if (root == null) {
root = newNode;
} else {
Node current = root;
Node parent;
while (true) {
parent = current;
if (id < current.no) {
current = current.left;
if (current == null) {
parent.left = newNode;
return;
}
} else {
current = current.right;
if (current == null) {
parent.right = newNode;
return;
}
}
}
}
}
public void displayTree() {
Stack globalStack = new Stack();
globalStack.push(root);
int nBlanks = 32;
boolean isRowEmpty = false;
System.out.println("....................................................");
while (isRowEmpty == false) {
Stack locaStack = new Stack();
isRowEmpty = true;
for (int i = 0; i < nBlanks; i++) {
System.out.print(" ");
}
while (globalStack.isEmpty() == false) {
Node temp = (Node) globalStack.pop();
if (temp != null) {
System.out.print(temp.no);
locaStack.push(temp.left);
locaStack.push(temp.right);
if (temp.left != null || temp.right != null) {
isRowEmpty = false;
}
} else {
System.out.print("--");
locaStack.push(null);
locaStack.push(null);
}
for (int j = 0; j < nBlanks * 2 - 2; j++) {
System.out.print(" ");
}
}
System.out.println("");
nBlanks /= 2;
while (locaStack.isEmpty() == false) {
globalStack.push(locaStack.pop());
}
}
System.out.println("....................................................");
}
}
public class game extends javax.swing.JFrame {
public game() {
initComponents();
Tree a = new Tree();
a.insert(100, "Apakah Sungai Kapuas adalah sungai terpanjang di dunia", 'Y');
a.insert(50, "Apakah Issac Newton terkenal dengan teori relativitas?", 'N');
a.insert(150, "Apakah nama lain dari diabetes insulin adalah kencing manis?", 'N');
a.insert(30, "Apakah gas yang dilepaskan ke udara sebagai hasil fotosintesis adalah oksigen?", 'Y');
a.insert(80, "Apakah kota pelajar adalah julukan kota Malang?", 'N');
a.insert(130, "Apakah mitokondria adalah tempat respirasi sel?", 'Y');
a.insert(180, "Apakah rotasi adalah perputaran benda pada suatu sumbu yang tetap?", 'Y');
a.insert(15, "Apakah dalam menyundul bola sebaiknya menggunakan kepala bagian atas?", 'N');
a.insert(45, "Apakah SIM B1 Umum adalah untuk pengemudi Bus?", 'Y');
a.insert(75, "Apakah Christian Bale pernah memerankan tokoh Batman?", 'Y');
a.insert(90, "Apakah otot binaragawan mengalami hipertrofi agar menjadi besar dan bagus?", 'Y');
a.insert(115, "Apakah bagian terluar dari gigi manusia disebut pulpa?", 'N');
a.insert(145, "Apakah “striker” adalah pemain yang tujuannya adalah mencetak gol?", 'Y');
a.insert(175, "Apakah perkembangbiakan vegetatif disebut juga kawin?", 'N');
a.insert(190, "Apakah ‘Jalur Pantura’ merupakan sebutan untuk Jalan Anyer-Panarukan?", 'Y');
a.insert(10, "Apakah uang Thailnd adalah Bath?", 'Y');
a.insert(20, "Apakah Belanda adalah negara monaki?", 'Y');
a.insert(35, "Apakah Rolex adalah produsen pembuatan jam tangan mewah asal Italy?", 'N');
a.insert(47, "Apakah kekurangan vitamin c dapat menyebabkan gangguan tulang?", 'N');
a.insert(60, "Apakah Air mendidih pada suhu 100 derajat celcius?", 'Y');
a.insert(76, "Apakah anemia merupakan penyakit kekurangan darah?", 'Y');
a.insert(85, "Apakah anemia dan darah rendah merupakan penyakit yang sama?", 'N');
a.insert(95, "Apakah ibukota Turki adalah Ankara?", 'Y');
a.insert(110, "Apakah Drs. Muhammad Hatta adalah wakil presiden RI yang pertama?", 'Y');
a.insert(120, "Apakah Stephen Curry merupakan seorang pemain sepak bola?", 'N');
a.insert(135, "Apakah kantor PBB terlatak di New York?", 'Y');
a.insert(146, "Apakah margasatwa pulau komodo terletak di Nusa Tenggara Barat?", 'N');
a.insert(160, "Apakah makam Sunan Gresik berada di Gresik?", 'Y');
a.insert(176, "Apakah Hanami merupakan tradisi masyarakat Jepang?", 'Y');
a.insert(185, "Apakah Portugal adalah juara Piala Eropa 2016?", 'Y');
a.insert(195, "Apakah kadal dan buaya merupakan mamalia?", 'N');
}
private void yActionPerformed(java.awt.event.ActionEvent evt) {
Tree a = new Tree();
System.out.println(a.getLeft());
soal.setText(a.getLeft());
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new game().setVisible(true);
}
});
}
}
输出: 线程“ AWT-EventQueue-1”中的异常java.lang.NullPointerException