これがフレームのコンストラクターです
public LibraryFrame() {
mod1 = new javax.swing.DefaultListModel();
books = new ArrayList<>();
Book b1 = new Book("book1","aAuthor","aPublisher","aIsbn",5,0);
books.add(b1);
mod1.addElement(b1.title);
initComponents();
}
これがリスナーです
private void viewStockListValueChanged(javax.swing.event.ListSelectionEvent evt) {
int selected = viewStockList.getSelectedIndex();
String info = books.get(selected).title;
viewStockArea.insert(info,0);
}
リストの項目を選択すると、タイトルがテキスト領域に2回挿入されます(最終的にはbook1book1になります)
私はリスナーについてできる限り調査しましたが、解決策を見つけることができませんでした。助けに感謝します
編集:kentcdoddsのおかげで、解決策が見つかりました。基本的に、リスナーは2つのイベントを作成します。詳細については、彼の回答を参照してください。正しく機能する完成したコードは次のとおりです。
private void viewStockListValueChanged(javax.swing.event.ListSelectionEvent evt) {
if (!evt.getValueIsAdjusting()){
int selected = viewStockList.getSelectedIndex();
String info = books.get(selected).title;
viewStockArea.insert(info,0);
}
}