0

私はレシピをJTable. すべて正常に動作しているようですが、唯一の問題は、データを適切に保持する必要があるオブジェクトを初期化できないことです。これが私に頭痛の種を与えるクラスです:

class RecipeTableModel extends AbstractTableModel {

    private String[] columnNames = {"Number", "Name", "Difficulty",
        "Preparation", "PreparationTime", "Quantity", "Incredients"};
    Recipe recipe1 = new Recipe("1", "SecretRecipe", "easy", "microwave", "20min", "100gr", "flour");
    Recipe recipe2 = new Recipe("2", "SuperRecipe", "medium", "microwave", "30min", "100gr", "Salt");
    **RecipeDB recipeDB = new RecipeDB();
    recipeDB.addRecipe (Recipe recipe1);**


    @Override
    public int getColumnCount() {
        return 7;
    }

    public int getRowCount() {
        //return recipeDB.getRecipeDBSize();
        return 15;
    }

    @Override
    public Object getValueAt(int row, int col) {

    /*  Recipe recipe = recipeDB.getRecipe(row);
        switch (col){
        case 0:
            return recipe.getNumber();
        case 1:
            return recipe.getName();
        case 2:
            return recipe.getPrep();
        case 3:
            return recipe.getPrepTime();
        case 4:
            return recipe.getDifficulty();
        case 5:
            return recipe.getIngredients(); 
        }
        */
        return null;
    }

    public String getColumnName(int column) {
        return columnNames[column];
    }
}

にレシピを追加しようとすると、構文エラーが発生しrecipeDBます。recipeDBデバッグすると、値に初期化されていることがわかりnullます。これはどのように可能ですか?

これが私の他のクラスです:

import java.util.ArrayList;

public class RecipeDB {

    public ArrayList<Recipe> recipeArraylist;

    public RecipeDB() {
        recipeArraylist = new ArrayList<Recipe>();
    }

    public void addRecipe(Recipe recipe) {
        recipeArraylist.add(recipe);
    }

    public int getRecipeDBSize() {
        return recipeArraylist.size();
    }

    public Recipe getRecipe(int i) {
        return recipeArraylist.get(i);
    }

    public ArrayList getDBArrayList() {
        return recipeArraylist;
    }
}
4

1 に答える 1