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);
}}