arrayList をリストする JList があります。削除というボタンを押すと、選択した要素をリスト (理想的には配列リスト) から削除します。現時点では、次のコードがありますが、機能していません。つまり、要素が選択されている場合は何もしないように見え、何も選択されていない場合は ArrayIndexOutOfBoundsException が返されます。
private JList listOrders = new JList(arrayList.toArray());
public void myList() {
listOrders.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION );
panelForLists.add(listOrders);
}
public void updateList() {
listOrders.setListData(arrayList.toArray());
listOrders.revalidate();
listOrders.repaint();
}
public void actionPerformed(ActionEvent event) {
if (event.getSource() == deleteItem) {
int index = listOrders.getSelectedIndex();
listOrders.remove(index);
updateList();
}
}
おそらくどこかに ListSelectionListener を追加する必要があるためだと思いますが、これをどのように処理できるかわかりません。私は何年にもわたってインターネットで答えを探してきましたが、これは JList oracle demo から思いついたものです。
どうもありがとう!