我似乎沒有把握事件等的概念。在閱讀了一段時間關於如何實現監聽器之後,我遇到了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