Moin,
folgende Aufgabe: Eine Reihe von Zahlen(Biber) läuft los , es gibt Gruben die eine gewisse Anzahl an Zahlen Tief sind. Beispiel: es taucht eine Grube auf die 2 Zahlen tief ist. Die 1 und die 2 gehen rein (Stack), die anderen laufen drüber und sie hängen sich wieder dran( an die Liste). So wird bei einer 2 zahlen großen Grube mit den zahlen 123-> 321.
So, folgendes Problem nun, in der Zeile die ich im Text markiert habe tritt eine Nullpointerexception auf...das kann doch eigentlich nicht sein, da ich ja 2 Zeilen vorher wieder nach vorne springe. Das ich Objekte habe steht fest da das füllen und ausgeben in dem Abschnitt darüber bestens klappt.
Hab ich irgendwas übersehen? Wäre über einen Tipp dankbar
folgende Aufgabe: Eine Reihe von Zahlen(Biber) läuft los , es gibt Gruben die eine gewisse Anzahl an Zahlen Tief sind. Beispiel: es taucht eine Grube auf die 2 Zahlen tief ist. Die 1 und die 2 gehen rein (Stack), die anderen laufen drüber und sie hängen sich wieder dran( an die Liste). So wird bei einer 2 zahlen großen Grube mit den zahlen 123-> 321.
So, folgendes Problem nun, in der Zeile die ich im Text markiert habe tritt eine Nullpointerexception auf...das kann doch eigentlich nicht sein, da ich ja 2 Zeilen vorher wieder nach vorne springe. Das ich Objekte habe steht fest da das füllen und ausgeben in dem Abschnitt darüber bestens klappt.
Hab ich irgendwas übersehen? Wäre über einen Tipp dankbar
Java:
public class Biber extends JFrame
{
// Anfang Attribute
private JNumberField jNumberField2 = new JNumberField();
private JLabel jLabel1 = new JLabel();
private JLabel jLabel2 = new JLabel();
private JNumberField jNumberField3 = new JNumberField();
private JLabel jLabel3 = new JLabel();
private JButton jButton1 = new JButton();
private Queue schlange;
private Stack grube;
private JLabel jLabel4 = new JLabel();
private JLabel jLabel5 = new JLabel();
private JNumberField jNumberField1 = new JNumberField();
private JTextArea jTextArea1 = new JTextArea("");
private JScrollPane jTextArea1ScrollPane = new JScrollPane(jTextArea1);
private JTextArea jTextArea2 = new JTextArea("");
private JScrollPane jTextArea2ScrollPane = new JScrollPane(jTextArea2);
// Ende Attribute
public Biber (String title)
{
super (title);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int frameWidth = 326;
int frameHeight = 315;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten
jNumberField2.setBounds(105, 73, 180, 30);
jNumberField2.setText("");
cp.add(jNumberField2);
jLabel1.setBounds(5, 30, 97, 29);
jLabel1.setText("Menge der Biber");
cp.add(jLabel1);
jLabel2.setBounds(11, 72, 89, 28);
jLabel2.setText("Grubentiefe");
cp.add(jLabel2);
jNumberField3.setBounds(105, 109, 178, 31);
jNumberField3.setText("");
cp.add(jNumberField3);
jLabel3.setBounds(6, 110, 97, 29);
jLabel3.setText("Anzahl Gruben ");
cp.add(jLabel3);
jButton1.setBounds(151, 146, 67, 36);
jButton1.setText("Go!");
jButton1.setMargin(new Insets(2, 2, 2, 2));
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton1_ActionPerformed(evt);
}
});
cp.add(jButton1);
schlange=new Queue();
jLabel4.setBounds(27, 204, 60, 34);
jLabel4.setText("Vorher");
cp.add(jLabel4);
jLabel5.setBounds(25, 242, 64, 28);
jLabel5.setText("Nachher");
cp.add(jLabel5);
jNumberField1.setBounds(106, 34, 175, 29);
jNumberField1.setText("");
cp.add(jNumberField1);
jTextArea1ScrollPane.setBounds(108, 244, 170, 32);
cp.add(jTextArea1ScrollPane);
jTextArea2ScrollPane.setBounds(108, 205, 174, 34);
cp.add(jTextArea2ScrollPane);
// Ende Komponenten
setResizable(false);
setVisible(true);
}
// Anfang Methoden
public void jButton1_ActionPerformed(ActionEvent evt) {
while (!schlange.isEmpty())
{
schlange.dequeue();
}
jTextArea2.setText("");
jTextArea1.setText("");
int menge = jNumberField1.getInt();
for (int i=1;i<=menge;i++)
{
schlange.enqueue(""+i);
}
schlange.liste.toFirst();
while (schlange.liste.hasAccess())
{
jTextArea2.append((String)schlange.liste.getObject());
schlange.liste.next();
}
int grubenzahl = jNumberField3.getInt();
int tiefenzahl =jNumberField2.getInt();
for (int a=0;a<=grubenzahl;a++ )
{
schlange.liste.toFirst();
for (int b=0;b<=tiefenzahl;b++)
{
grube.push(schlange.front()); //Hier tritt die Nullpointerexception auf!
schlange.dequeue();
}
for (int c=0;c<=tiefenzahl;c++ )
{
schlange.enqueue(grube.top());
}
while (!grube.isEmpty())
{
grube.pop();
}
}
schlange.front();
while (schlange.liste.hasAccess())
{
jTextArea1.append((String)schlange.liste.getObject());
schlange.liste.next();
}
} // end of jButton1_ActionPerformed
// Ende Methoden
public static void main(String[] args)
{
new Biber("Biber");
}
}
Zuletzt bearbeitet: