1

I am getting

Exception in thread "main" java.lang.NullPointerException at deneme2.MainFrame.(MainFrame.java:43) at deneme2.deneme2.main(deneme2.java:88) C:\Users\Melih\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1 BUILD FAILED (total time: 1 second)

I have two classes one for the frame and the other one is for the code, i have done most part of it so far but however i am getting this error. however on my deneme2 class if i remove the MainFrame frame = new MainFrame(); it seems to work.

This is my denem2 class

public class deneme2 extends JFrame {

public static interface MessageOutput {

    void appendMessage(String message);
}

private MessageOutput msgOutput = new MessageOutput() {
    @Override
    public void appendMessage(String message) {
        System.out.println(message);
    }
};

public void setMessageOutput(MessageOutput value) {
    msgOutput = value;
}

private Node front, rear;
private int currentSize;

private class Node {

    int data;
    Node next;
}

public deneme2() {
    front = null;
    rear = null;
    currentSize = 0;
}

public boolean isEmpty() {
    return (currentSize == 0);
}

public int dequeue() {
    int data = front.data;
    front = front.next;
    if (isEmpty()) {
        rear = null;
    }
    currentSize--;
    msgOutput.appendMessage(data + " removed from the queue");
    return data;
}

public void enqueue(int data) {
    Node oldRear = rear;
    rear = new Node();
    rear.data = data;
    rear.next = null;
    if (isEmpty()) {
        front = rear;
    } else {
        oldRear.next = rear;
    }
    currentSize++;
    System.out.println(data + " added to the queue");
}

public static void main(String a[]) throws FileNotFoundException {
   MainFrame frame = new MainFrame();
   queue.setMessageOutput(frame);
    Scanner s = new Scanner(new File("list.txt"));
    deneme2 queue = new deneme2();
    while (s.hasNext()) {
        queue.enqueue(s.nextInt());
    }
    s.close();
    queue.dequeue();
}}

And this is my MainFrame class

public class MainFrame extends JFrame implements deneme2.MessageOutput {
private JTextArea txt1;
@Override
public void appendMessage(String message) {
    txt1.append(message);
}

public MainFrame() {


    JFrame frame = new JFrame();
    JButton b1 = new JButton("Load Up the Que");
    JButton b2 = new JButton("Add to the Que");
    JTextArea txt2 = new JTextArea();

    txt1.setEditable(false);

    b1.setBounds(50, 100, 180, 100);
    b2.setBounds(50, 300, 180, 100);
    txt1.setBounds(600, 100, 300, 600);
    txt2.setBounds(300, 300, 180, 100);

    frame.add(b1);
    frame.add(b2);
    frame.add(txt1);
    frame.add(txt2);
    frame.setLayout(null);
    frame.setSize(1000, 1500);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}}
Melih Anik
  • 25
  • 10
  • What is queue in this row: queue.setMessageOutput(frame); ? And why you define this variable after in deneme2 queue = new deneme2(); – AlexGera Dec 03 '17 at 19:43

0 Answers0