因为我需要一个有大量代码的动作监听器,所以我决定将一个新的监听器作为一个类。 我的问题是我需要从滚动窗格中传递选定的值,以便我可以根据该项执行操作,它会传递一个空指针,因为甚至在我单击执行操作的按钮之前就会生成侦听器
我的课程是:
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}}
答案 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
}
在这种情况下,将在用户按下按钮后获取值。