将选定值传递给新侦听器

时间:2017-03-21 20:36:36

标签: java actionlistener jlist

因为我需要一个有大量代码的动作监听器,所以我决定将一个新的监听器作为一个类。 我的问题是我需要从滚动窗格中传递选定的值,以便我可以根据该项执行操作,它会传递一个空指针,因为甚至在我单击执行操作的按钮之前就会生成侦听器

我的课程是:

public RecipeListener(ArrayList<Food> foodList, String aSelectedRecipe){
this.recipesList = foodList;
this.selectedRecipe = aSelectedRecipe;
}

我的新类构造函数是:

RecipeListener checkRecipeListener = new RecipeListener(breakfastArrayList, breakfastList.getSelectedValue());

我的监听器实现是:

public RecipeListener(ArrayList<Food> foodList, JList tempList){
/*construction arguments*/
}

public actionPerfomed(ActionEvent arg0){
String selectedRecipe = (String) tList.getSelectedValue();
//rest code
}

按下按钮,先从列表中选择一个项目

编辑:这是解决方案,它将jlist作为参数传递给构造函数,并在actionPerfomed方法中创建一个字符串。     private JList tList;

{{1}}

1 个答案:

答案 0 :(得分:0)

您应该将您的监听器定义如下:

public class RecipeListener implements ActionListener{
    //rest code  
    public RecipeListener(ArrayList<Food> foodList){
        this.recipesList = foodList;
    }

    public void actionPerformed(ActionEvent e) {
        String selectedReceipe = breakfastList.getSelectedValue();
        // other processing code
    }

在这种情况下,将在用户按下按钮后获取值。