Guten Abend!
In Informatik haben wir die Aufgabe bekommen ein Programm zu erstellen, dass das Prinzip eines Stapels darstellt. Ich wollte das mit einem GUI tun, indem man den Namen eines Dokuments eingibt und mit einem Button dem Stapel hinzufügt bzw. es wieder wegnimmt. Ich wollte das ganze mit einem Array realisieren, jedoch kommt von BlueJ eine lange Fehlermeldung deren Ursache ist:
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
In Informatik haben wir die Aufgabe bekommen ein Programm zu erstellen, dass das Prinzip eines Stapels darstellt. Ich wollte das mit einem GUI tun, indem man den Namen eines Dokuments eingibt und mit einem Button dem Stapel hinzufügt bzw. es wieder wegnimmt. Ich wollte das ganze mit einem Array realisieren, jedoch kommt von BlueJ eine lange Fehlermeldung deren Ursache ist:
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
Java:
/**
* Die Klasse SuMAnwendung wurde automatisch erstellt:
*
* @author
* @version 13.12.2010
*/
import sum.komponenten.*;
import sum.werkzeuge.*;
import sum.ereignis.*;
import sum.strukturen.Stapel;
import java.io.*;
public class SuMAnwendung extends EBAnwendung
{
// Objekte
private Stapel meinStapel;
private Etikett hatEtikettDokumente;
private Etikett hatEtikettName;
private Etikett hatEtikettEingabe;
private Textfeld hatTextfeld2;
private Knopf hatKnopfAblegen;
private Knopf hatKnopfAufnehmen;
private Etikett hatEtikett4;
// Attribute
int n=0;
String[]a = new String[n];
/**
* Konstruktor
*/
public SuMAnwendung()
{
//Initialisierung der Oberklasse
super(1059, 924);
meinStapel = new Stapel();
hatEtikettDokumente = new Etikett(315, 210, 100, 25, "Dokumente");
// Ausrichtung
hatEtikettDokumente.setzeAusrichtung(Ausrichtung.MITTE);
hatEtikettName = new Etikett(200, 265, 100, 25, "Name:");
// Ausrichtung
hatEtikettName.setzeAusrichtung(Ausrichtung.RECHTS);
hatEtikettEingabe = new Etikett(200, 300, 100, 25, "Eingabe:");
// Ausrichtung
hatEtikettEingabe.setzeAusrichtung(Ausrichtung.RECHTS);
hatTextfeld2 = new Textfeld(315, 300, 100, 25, "");
// Ausrichtung
hatTextfeld2.setzeAusrichtung(Ausrichtung.LINKS);
hatKnopfAblegen = new Knopf(445, 265, 100, 25, "Ablegen");
hatKnopfAblegen.setzeBearbeiterGeklickt("hatKnopfAblegenGeklickt");
hatKnopfAufnehmen = new Knopf(445, 300, 100, 25, "Aufnehmen");
hatKnopfAufnehmen.setzeBearbeiterGeklickt("hatKnopfAufnehmenGeklickt");
hatEtikett4 = new Etikett(315, 265, 100, 25, "-");
// Ausrichtung
hatEtikett4.setzeAusrichtung(Ausrichtung.LINKS);
}
[B]/**
* Vorher: Ereignis GeklicktvonhatKnopfAblegen fand statt.
* Nachher: (schreiben Sie, was in dieser Methode ausgefuehrt wird)
*/
public void hatKnopfAblegenGeklickt()
{
// Schreiben Sie hier den Text ihres Dienstes
String DokumentName = hatTextfeld2.inhaltAlsText();
a[n] = DokumentName;
meinStapel.legeAuf(a[n]);
if(meinStapel.spitze() != null)
{
hatEtikett4.setzeInhalt(a[n]);
}
else
{
hatEtikett4.setzeInhalt("Kein Dokument vorhanden!");
}
n++;
}
/**
* Vorher: Ereignis GeklicktvonhatKnopfAufnehmen fand statt.
* Nachher: (schreiben Sie, was in dieser Methode ausgefuehrt wird)
*/
public void hatKnopfAufnehmenGeklickt()
{
// Schreiben Sie hier den Text ihres Dienstes
if(meinStapel.spitze() != null)
{
meinStapel.entferneOberstes();
n=n-1;
meinStapel.spitze();
hatEtikett4.setzeInhalt(a[n]);
}
else
{
hatEtikett4.setzeInhalt("Kein Dokument vorhanden!");
}
}
}[/B]