我有一个类商店。
有多家商店,最终有数百家。
我有多个按钮使用一个事件处理程序,因为它们都是相同的,但具有不同的数字,具体取决于商店。
我让事件处理程序检测哪个按钮触发了事件。
变量store
然后根据按下的按钮存储商店对象
但检测按下哪个按钮的代码似乎非常重复。
过去情况更糟,我把它缩短了很多:
@FXML
private void handleButtonAction(ActionEvent event) {
Object source = event.getSource();
if (source.equals(store01Button)){
store = store01;
}else if (source.equals(store02Button)){
store = store02;
}else if (source.equals(store03Button)){
store = store03;
}else if (source.equals(store04Button)){
store = store04;
}else if (source.equals(store05Button)){
store = store05;
}else if (source.equals(store05Button)){
store = store05;
}
当我有数百家商店时,我正在寻找如何解决这个问题的答案。
答案 0 :(得分:0)
创建按钮时,使用setUserData
保存对商店的引用。在事件处理程序中,使用getUserData
来获取它。每个java fx组件都维护一个属性映射。