イベントなどの概念を把握していないようです。リスナーを実装する方法について少しずつ読んだ後、私は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を指定する別のタグを追加する必要があり、そのリスナーに通知しなければなりません。これはスイングのようには見えません。 – toto2
実際には、それはスイングです... – aymeric
ダム - 別の空の 'addListDataListener' - ネット上のどこでも動作する' addListDataListener'を持つコードサンプルがないようです。 – Martin