我似乎没有把握事件等的概念。在阅读了一段时间关于如何实现监听器之后,我遇到了Java教程,我应该扩展AbstractListModel
以获取数据事件触发。由于某种原因,它仍然无法正常工作。ComboBoxModel事件不起作用
有什么我做错了吗?
预计在addListDataListener(ListDataListener l)
上运行什么样的代码?因为我也不明白。
public class CarComboBox extends AbstractListModel<Object> implements ComboBoxModel<Object> {
private JdbcRowSet jdbc;
private int size = 0;
private String selection;
public CarComboBox() {
try {
jdbc = new Query().getCarInfo();
jdbc.beforeFirst();
while (jdbc.next()) {
size++;
}
jdbc.beforeFirst();
}
catch (SQLException ex) {
System.err.println(ex.toString());
}
}
@Override
public void setSelectedItem(Object anItem) {
selection = (String) anItem;
}
@Override
public Object getSelectedItem() {
return selection;
}
@Override
public void addListDataListener(ListDataListener l) {
}
@Override
public void removeListDataListener(ListDataListener l) {
}
@Override
public int getSize() {
return size;
}
@Override
public String getElementAt(int index) {
try {
jdbc.absolute(index + 1);
return jdbc.getString(2);
}
catch (SQLException ex) {
System.out.println(ex.toString());
}
return null;
}
}
而且到监听器添加到CarComboBox我做的:
CarComboBox ccb = new CarComboBox();
ccb.addListDataListener(new ListDataListener()
您应该添加另一个标记指定GUI你使用的是什么。这看起来不像Swing。 – toto2
实际上,它是Swing ... – aymeric
Dam - 另一个空的addListDataListener - 在网上任何地方似乎都没有带有工作的addListDataListener的代码示例。 – Martin