Hey Leute,
ich versuche zurzeit ein Programm zu schreiben, welches Zahlen aus Textdokumenten ausliest, diese in Bilder umwandelt, darstellt und man diese Bilder und Zahlen dann ändern und wieder abspeichern kann. Dies ist für ein Spiel gedacht und soll dem Benutzer die Möglichkeit geben, etwas innerhalb des Spiels seinen Vorstellungen anzupassen.
Nun zu meinem Problem: Ich habe eine Klasse erstellt, die die Methoden der Klasse JButton vererbt kriegt und ihr den Integer number hinzugefügt, womit die Zahl(en) aus dem Textdokument abgespeichert werden sollen.
Wenn ich jetzt allerdings auf diesen Button clicke und die Methode actionPerformed aufgerufen wird, kann ich denn Button auch erkennen und casten, nur wenn ich auf die Integervariable number zugreifen will, gibt mir das Terminal eine NullPointerException aus und zeigt auf die Zeile, in der ich diese Variable verwenden will. Liegt dies daran, dass ich die Klasse JButton erweitert habe und muss ich noch etwas hinzufügen, damit meine Variable verwendet werden kann?
Hier der Code:
ci ist eine weitere Klasse, die das Item an die Datenbank übergibt
Hier die Methode aus ci:
und hier die Methode setItem aus db(Datenbank)
in heroes werden die Nummern abgespeichert
Hoffe auf Hilfe, da ich mit einigen meiner Freunde dieses Spiel spiele und sie schon drauf warten
Danke schonmal!
ich versuche zurzeit ein Programm zu schreiben, welches Zahlen aus Textdokumenten ausliest, diese in Bilder umwandelt, darstellt und man diese Bilder und Zahlen dann ändern und wieder abspeichern kann. Dies ist für ein Spiel gedacht und soll dem Benutzer die Möglichkeit geben, etwas innerhalb des Spiels seinen Vorstellungen anzupassen.
Nun zu meinem Problem: Ich habe eine Klasse erstellt, die die Methoden der Klasse JButton vererbt kriegt und ihr den Integer number hinzugefügt, womit die Zahl(en) aus dem Textdokument abgespeichert werden sollen.
Wenn ich jetzt allerdings auf diesen Button clicke und die Methode actionPerformed aufgerufen wird, kann ich denn Button auch erkennen und casten, nur wenn ich auf die Integervariable number zugreifen will, gibt mir das Terminal eine NullPointerException aus und zeigt auf die Zeile, in der ich diese Variable verwenden will. Liegt dies daran, dass ich die Klasse JButton erweitert habe und muss ich noch etwas hinzufügen, damit meine Variable verwendet werden kann?
Hier der Code:
Java:
import javax.swing.JButton;
import javax.swing.ImageIcon;
public class Item extends JButton
{
int number;
public Item()
{
super();
number = 0;
}
public Item(ImageIcon ii, int num)
{
super(ii);
number = num;
}
public Item(String url, int num)
{
super(new ImageIcon(url));
number = num;
}
public Item(int num)
{
super();
number = num;
}
}
Java:
public void actionPerformed(ActionEvent e)
{
Item c = (Item)e.getSource();
ci.setzeItem(c,activeHero.getText());
}
ci ist eine weitere Klasse, die das Item an die Datenbank übergibt
Hier die Methode aus ci:
Java:
public void setzeItem(Item i, String champ)
{
items[active].setIcon(i.getIcon());
this.number[active] = i.number;
db.setItem(champ,active,i.number); //hier bekomme ich eine NullPointerException
}
und hier die Methode setItem aus db(Datenbank)
in heroes werden die Nummern abgespeichert
Java:
public void setItem(String heroName, int place, int number)
{
int c = 0;
for(int y = 0; y < 103; y++)
{
if(heroName.equals(champions[y]))
{
c = y;
}
}
if(heroes[c] == null)heroes[c] = new Hero(champions[c]);
heroes[c].customs[place].number = number; //Wieder eine NullPointerException
}
Hoffe auf Hilfe, da ich mit einigen meiner Freunde dieses Spiel spiele und sie schon drauf warten
Danke schonmal!