Bigzed
Jungspund
Hallo Leute,
ich programmiere gerade das erste mal an einem etwas komplexeren Problem in Java, allerdings scheiter ich schon an der ersten Ausgabe in das GUI. Mein Problem an dem ich scheiter ist wahrscheinlich ziemlich simpel. Ich habe mir eine Klasse "Pizzavision" geschrieben bzw. den ersten Keim davon und möchte einfach mal als Test über den Button1 auf der GUI diese Klasse erschaffen, ein paar Methoden ausführen und eine Ausgabe erhalten allerdings tut dieses Programm bis jetzt nur eine Fehlermeldung ausspucken, obwohl die Klasse und der GUI alleine Kompiliert werden können. Erst wenn ich auf den Button drücke passiert etwas unvorhergesehenes.
Und zwar bekomme ich diese Fehlermeldung:
Doch ich weiß leider noch nichts damit anzufangen, daher wäre mir eine umfassende Erklärung ganz lieb
Hier natürlich noch mein Quellcode
GUI-Klasse
Und hier die Klasse "Pizzavision" die ich erschaffe:
ps.: schon mal Danke für die Hilfe
ich programmiere gerade das erste mal an einem etwas komplexeren Problem in Java, allerdings scheiter ich schon an der ersten Ausgabe in das GUI. Mein Problem an dem ich scheiter ist wahrscheinlich ziemlich simpel. Ich habe mir eine Klasse "Pizzavision" geschrieben bzw. den ersten Keim davon und möchte einfach mal als Test über den Button1 auf der GUI diese Klasse erschaffen, ein paar Methoden ausführen und eine Ausgabe erhalten allerdings tut dieses Programm bis jetzt nur eine Fehlermeldung ausspucken, obwohl die Klasse und der GUI alleine Kompiliert werden können. Erst wenn ich auf den Button drücke passiert etwas unvorhergesehenes.
Und zwar bekomme ich diese Fehlermeldung:
Code:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 11
at Pizzavision.<init>(Pizzavision.java:15)
at PizzaAufgabe.button1_ActionPerformed(PizzaAufgabe.java:55)
at PizzaAufgabe$2.actionPerformed(PizzaAufgabe.java:39)
at java.awt.Button.processActionEvent(Button.java:392)
at java.awt.Button.processEvent(Button.java:360)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Doch ich weiß leider noch nichts damit anzufangen, daher wäre mir eine umfassende Erklärung ganz lieb
Hier natürlich noch mein Quellcode
GUI-Klasse
Code:
import java.awt.*;
import java.awt.event.*;
/**
* Copyright
* by
* Bigzed
*
*
*/
public class PizzaAufgabe extends Frame {
// Anfang Variablen
private Button button1 = new Button();
private Label label1 = new Label();
// Ende Variablen
public PizzaAufgabe(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { System.exit(0); }
});
int frameWidth = 300;
int frameHeight = 300;
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);
Panel cp = new Panel(null);
add(cp);
// Anfang Komponenten
button1.setBounds(112, 16, 75, 25);
button1.setLabel("button1");
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button1_ActionPerformed(evt);
}
});
cp.add(button1);
label1.setBounds(56, 128, 37, 16);
label1.setText("label1");
label1.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(label1);
// Ende Komponenten
setResizable(false);
setVisible(true);
}
// Anfang Ereignisprozeduren
public void button1_ActionPerformed(ActionEvent evt) {
Pizzavision pizza = new Pizzavision();
pizza.addZutat("Erbsen");
pizza.addZutat("Mais");
pizza.deleteZutat("Mais");
pizza.addZutat("Tomaten");
label1.setText(pizza.showPizza());
}
// Ende Ereignisprozeduren
public static void main(String[] args) {
new PizzaAufgabe("PizzaAufgabe");
}
}
Und hier die Klasse "Pizzavision" die ich erschaffe:
Code:
import java.awt.*;
public class Pizzavision {
Boolean zutaten[] = new Boolean[11];
public Pizzavision() {
//Zählvariable
int i = 0;
//Zutaten liste leeren
while (i < 12) {
zutaten[i] = false;
i++;
}
}
//Zutat hinzufügen
public boolean addZutat(String zutat) {
if (zutat == "Kaese") { //Käse:Index=0
zutaten[0] = true;
return true;
} else if (zutat == "Tomatensosse") { //Tomatensosse:Index=1
zutaten[1] = true;
return true;
} else if (zutat == "Tomaten") { //Tomaten:Index=2
zutaten[2] = true;
return true;
} else if (zutat == "Oliven") { //Oliven:Index=3
zutaten[3] = true;
return true;
} else if (zutat == "Zwiebeln") { //Zwiebeln:Index=4
zutaten[4] = true;
return true;
} else if (zutat == "Kochschinken") { //Kochschinken:Index=5
zutaten[5] = true;
return true;
} else if (zutat == "Ananas") { //Ananas:Index=6
zutaten[6] = true;
return true;
} else if (zutat == "Champignos") { //Champignos:Index=7
zutaten[7] = true;
return true;
} else if (zutat == "Salami") { //Salami:Index=8
zutaten[8] = true;
return true;
} else if (zutat == "Thunfisch") { //Thunfisch:Index=9
zutaten[9] = true;
return true;
} else if (zutat == "Mais") { //Mais:Index=10
zutaten[10] = true;
return true;
} else if (zutat == "Erbsen") { //Erbsen:Index=10
zutaten[11] = true;
return true;
} else {
return false;
}
}
//Zutat entfernen
public boolean deleteZutat(String zutat) {
if (zutat == "Kaese") { //Käse:Index=0
zutaten[0] = false;
return true;
} else if (zutat == "Tomatensosse") { //Tomatensosse:Index=1
zutaten[1] = false;
return true;
} else if (zutat == "Tomaten") { //Tomaten:Index=2
zutaten[2] = false;
return true;
} else if (zutat == "Oliven") { //Oliven:Index=3
zutaten[3] = false;
return true;
} else if (zutat == "Zwiebeln") { //Zwiebeln:Index=4
zutaten[4] = false;
return true;
} else if (zutat == "Kochschinken") { //Kochschinken:Index=5
zutaten[5] = false;
return true;
} else if (zutat == "Ananas") { //Ananas:Index=6
zutaten[6] = false;
return true;
} else if (zutat == "Champignos") { //Champignos:Index=7
zutaten[7] = false;
return true;
} else if (zutat == "Salami") { //Salami:Index=8
zutaten[8] = false;
return true;
} else if (zutat == "Thunfisch") { //Thunfisch:Index=9
zutaten[9] = false;
return true;
} else if (zutat == "Mais") { //Mais:Index=10
zutaten[10] = false;
return true;
} else if (zutat == "Erbsen") { //Erbsen:Index=10
zutaten[11] = false;
return true;
} else {
return false;
}
}
public String showPizza() {
String Ausgabe;
int i;
Ausgabe = "";
for (i = 0; i < 12; i++) {
if (zutaten[i] == true) {
Ausgabe = Ausgabe + i + ",";
}
}
return Ausgabe;
}
private void clearZutaten() {
int i; //Zählvariable
//Zutaten liste leeren
for (i = 0; i < 12; i++) {
zutaten[i] = false;
}
}
}
ps.: schon mal Danke für die Hilfe