首先:我很抱歉问题名称,我找不到一个好名字。
我有以下听众
public void valueChanged(ListSelectionEvent arg0) {
if(!(arg0.getValueIsAdjusting())){
result.setText(result.getText()+arg0.getSource().getSelectedValue().toString());//I know it is wrong!
}
}
我想说的是:是否有一种方法可以确定事件的来源并获取其价值?
它真的会有帮助,例如有15个列表!
还是我必须写一个15条件?
答案 0 :(得分:3)
你快到了。调用arg0.getSource()并将其转换为JList,中提琴,你就在那里!类似的东西:
String selection = ((JList) arg0.getSource()).getSelectedValue().toString();
result.setText(result.getText() + selection);
请注意,我的美学家坚持将该参数重命名为更漂亮的东西。
public void valueChanged(ListSelectionEvent lsEvent) {
if(!(lsEvent.getValueIsAdjusting())){
JList list = (JList) lsEvent.getSource();
Object selection = list.getSelectedValue(); // if not using generics
if (selection != null) {
String stringSelection = selection.toString();
result.setText(result.getText() + stringSelection);
}
}
}