Linus41
Legacy Member
Hey,
We willen meertaligheid in ons programma. Nu doen we dit met resource bundles. Dit lukt wel als we die integreren in onze GUI laag. Nu zijn er bepaalde zinnen in onze domeinlaag geschreven en als we daar onze RB integeren geeft hij errors. Weet iemand hoe dit komt?
Error:
Exception in thread "main" java.lang.NullPointerException
at Domein.DomeinModel.Domein.DomeinController.geefBeschikbareTegenstanders(DomeinController.java:193)
at UI.Console.geefBeschikbareTegenstanders(Console.java:203)
at UI.Console.speel(Console.java:98)
at UI.Console.NieuwSpel(Console.java:79)
at UI.Console.run(Console.java:23)
at StartUp.main(StartUp.java:11)
We willen meertaligheid in ons programma. Nu doen we dit met resource bundles. Dit lukt wel als we die integreren in onze GUI laag. Nu zijn er bepaalde zinnen in onze domeinlaag geschreven en als we daar onze RB integeren geeft hij errors. Weet iemand hoe dit komt?
package Domein.DomeinModel.Domein;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.ResourceBundle;
import Persistentie.persistentieBeheerder;
public class DomeinController {
private Personage p;
private Personage t;
private Spel spel;
private Spelbord spelbord;
private String spelbordnaam;
private persistentieBeheerder persistentieBeheerder;
private PersonageRepository personageRepository;
private CategorieRepository categorieRepository;
private List<Personage> tegenstanders = new ArrayList<Personage>();
Taalkeuze taal;
int taalkeuze;
private ResourceBundle messages;
public DomeinController() {
categorieRepository = new CategorieRepository();
personageRepository = new PersonageRepository();
taal = new Taalkeuze();
}
public void setTaal( int keuze ){
taal.setTaal(keuze);
}//end method setTaal
public ResourceBundle getBundle(){
return taal.getBundle();
}//end method getBundle()
public CategorieRepository getCategorieRep(){
return categorieRepository;
}
public void nieuwSpel() {
spel = new Spel(p);
}
public Spel getSpel(){
return spel;
}
public String[][] geefCategorieën() {
List<Categorie> categorien = categorieRepository.geefCategorieën();
String[][] cat = new String[categorien.size()][6];
int i = 0;
for (Categorie c : categorien) {
cat[0] = c.getCategorienaam();
cat[1] = String.valueOf(c.getAanvalspunten());
cat[2] = String.valueOf(c.getLichaamspunten());
cat[3] = String.valueOf(c.getSnelheidspunten());
cat[4] = String.valueOf(c.getVerdedigingspunten());
cat[5] = String.valueOf(c.getGeld());
i++;
}
return cat;
}
public boolean eindeSpel(){
return spel.eindeSpel();
}
public String[][] geefPersonages() {
List<Personage> l = personageRepository.geefPersonages();
int i = 0;
String[][] tabelP = new String[l.size()][2];
for (Personage p : l) {
tabelP[0] = p.getNaam() + "\t";
tabelP[1] = p.getCategorie().getCategorienaam();
i++;
}
return tabelP;
}
public String[] maakPersonage(String naam, int index) {
Categorie categorie = categorieRepository.geefCategorie(index);
p = personageRepository.maakPersonage(naam, categorie);
String[] arrayP = new String[6];
arrayP[0] = p.getNaam();
arrayP[1] = p.getCategorie().getCategorienaam();
arrayP[2] = Integer.toString(p.getCategorie().getLichaamspunten());
arrayP[3] = Integer.toString(p.getCategorie().getAanvalspunten());
arrayP[4] = Integer.toString(p.getCategorie().getVerdedigingspunten());
arrayP[5] = Integer.toString(p.getCategorie().getSnelheidspunten());
return arrayP;
}
public String[] kiesPersonage(int index) {
p = personageRepository.kiesPersonage(index - 1);
String personagegegevens[] = new String[6];
personagegegevens[0] = p.getNaam();
personagegegevens[1] = p.getCategorie().getCategorienaam();
personagegegevens[2] = Integer.toString(p.getCategorie()
.getAanvalspunten());
personagegegevens[3] = Integer.toString(p.getCategorie()
.getLichaamspunten());
personagegegevens[4] = Integer.toString(p.getCategorie()
.getSnelheidspunten());
personagegegevens[5] = Integer.toString(p.getCategorie()
.getVerdedigingspunten());
return personagegegevens;
}
public String[] kiesTegenstander(String naamT){
tegenstanders = spel.geefBeschikbareTegenstanders();
String[] arrayTegenstander = new String[1];
for(int k=0; k< tegenstanders.size(); k++){
if(naamT.equals(tegenstanders.get(k)))
arrayTegenstander[0] = tegenstanders.get(k).getNaam();
t= tegenstanders.get(k);
spel.setT(t);
}
return arrayTegenstander;
}
public String getSpelBord() {
return spel.getBord().toString();
}
public void verplaatsPersonage(int x, int y) {
spel.verplaatsPersonage(x, y, p);
}
public int gooiDobbelsteen() {
return spel.genereerGetallen();
}
public int bepaalAantalStappen(){
return spel.gooiDobbelsteen();
}
public int gooiGDobbelsteen(){ //MOET ER HIER EEN PERSONAGE ALS ATTRIBUUT
return spel.gooiGDobbelsteen(p);
}
public int gooiGDobbelsteen(String naamT){
return spel.gooiGDobbelsteen(naamT);
}
public int gooiGDobbelsteenSchilden(){
return spel.gooiGDobbelsteenSchilden(t.getCategorie());
}
public int gooiGDobbelsteenSchilden(String naamT){
return spel.gooiGDobbelsteenSchilden(naamT);
}
public int gooiGDobbelsteenWitteSchilden(){
return spel.gooiGDobbelsteenWitteSchilden();
}
public int duelleerAlsAanvaller(int schedels, int schilden, String naamT){
return spel.duelleerAlsAanvaller(schedels, schilden, naamT);
}
public String[][] kiesRandomTegenstander(){
Personage tegenstander = spel.kiesRandomTegenstander();
if(tegenstander != null){
String[][] arrayTegenstander = new String[1][2];
arrayTegenstander[0][0] = tegenstander.getNaam();
arrayTegenstander[0][1] =String.valueOf(tegenstander.getCategorie().getLichaamspunten());
return arrayTegenstander;
}
else
return null;
}
public String[][] geefBeschikbareTegenstanders(){
tegenstanders = spel.geefBeschikbareTegenstanders();
String[][] arrayTegenstander = new String[tegenstanders.size()][2];
for (int i = 0; i < tegenstanders.size(); i++) {
arrayTegenstander[0] = tegenstanders.get(i).getNaam();
arrayTegenstander[1] = String.valueOf(tegenstanders.get(i)
.getCategorie().getLichaamspunten());
}
if(tegenstanders.size()== 0)
messages = getBundle();
System.out.printf("\n%s\n\n", messages.getString("geenT"));
return arrayTegenstander;
}
public int[] evalueerDuel(int schedels, int schilden, int schadePunten){
return spel.evalueerDuel(schedels, schilden, schadePunten);
}
public int[] evalueerDuelVerdedigen(int schedels, int schilden, int schadePunten){
return spel.evalueerDuelVerdedigen(schedels, schilden, schadePunten);
}
}
Error:
Exception in thread "main" java.lang.NullPointerException
at Domein.DomeinModel.Domein.DomeinController.geefBeschikbareTegenstanders(DomeinController.java:193)
at UI.Console.geefBeschikbareTegenstanders(Console.java:203)
at UI.Console.speel(Console.java:98)
at UI.Console.NieuwSpel(Console.java:79)
at UI.Console.run(Console.java:23)
at StartUp.main(StartUp.java:11)