J'ai créé une classe qui hérite de la classe Manager qui servira de support pour quatre autres classes abstraites appelées AbstractColumn. Imaginez une table avec 4 colonnes, la table elle-même est la classe principale et chaque colonne est AbstractColumn.Erreur NullPointerException
Je ne comprends pas pourquoi j'obtiendrais cette erreur.
Voici mes cours.
La principale ColumnHolder.java classe
package tec.expenses;
import net.rim.device.api.system.Bitmap;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.component.BitmapField;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.container.VerticalFieldManager;
import net.rim.device.api.ui.decor.Background;
import net.rim.device.api.ui.decor.BackgroundFactory;
public class ColumnHolderManager extends Manager{
private AbstractColumn Entry;
private AbstractColumn Category;
private AbstractColumn Date;
private AbstractColumn Amount;
protected ColumnHolderManager(long style){
super(style);
Background mainBackground = BackgroundFactory.createSolidBackground(0xEEEEEE);
setBackground(mainBackground);
AbstractColumn Entry = new AbstractColumn("Entry", NO_HORIZONTAL_SCROLL);
AbstractColumn Category = new AbstractColumn("Category", NO_HORIZONTAL_SCROLL);
AbstractColumn Date = new AbstractColumn("Date", NO_HORIZONTAL_SCROLL);
AbstractColumn Amount = new AbstractColumn("Amount", NO_HORIZONTAL_SCROLL);
add(Entry);
add(Category);
add(Date);
add(Amount);
}
protected void sublayout(int width, int height) {
/*layoutChild(this.Entry, 85, 50);
setPositionChild(this.Entry, 10, 10);
layoutChild(this.Category, 85, 50);
setPositionChild(this.Category, 40, 0);
layoutChild(this.Date, 85, 50);
setPositionChild(this.Date, 70, 0);
layoutChild(this.Amount, 85, 50);
setPositionChild(this.Amount, 100, 0);*/
setExtent(360, 203);
}
}
La classe abstraite AbstractColumn
package tec.expenses;
import net.rim.device.api.system.Bitmap;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.component.BitmapField;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.decor.Background;
import net.rim.device.api.ui.decor.BackgroundFactory;
public class AbstractColumn extends Manager {
LabelField labelHeader;
protected AbstractColumn(String header, long style){
super(style);
Background mainBackground = BackgroundFactory.createSolidBackground(0xCACACA);
setBackground(mainBackground);
this.labelHeader = new LabelField(header);
add(labelHeader);
}
protected void sublayout(int width, int height) {
layoutChild(labelHeader, 80, 30);
setPositionChild(labelHeader, 5, 5);
setExtent(90, 50);
}
}
Comme vous pouvez voir les classes ne sont pas encore très simple, je ne comprends pas pourquoi je recevrais cette Erreur.
Je fais cette application pour Blackberry en utilisant Eclipse comme IDE. Lorsque je commente les méthodes setPositionChild des méthodes Sublayout, je n'ai plus l'exception, ce qui signifie que dans le constructeur de la classe ColumnHolderManager, la création des nouveaux objets AbstractColumn n'est pas réellement créée.
Une aide?
trop de code pour être appelé "très SIMPLE" ... désolé – Topera
Pourriez-vous fournir une trace de pile? – softcr
Je ne peux pas fournir une trace de pile car je ne sais pas comment lancer Eclipse correctement. –