当按下按钮时,该方法将从另一个类调用到Jframe类

时间:2019-05-16 23:29:29

标签: java netbeans jframe binary-tree

使程序在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

0 个答案:

没有答案