JList
を持つDefaultListModel
があります。
JList
内のアイテムをダブルクリックイベントに反応させるにはどうすればよいですか?
String[] items = {"A", "B", "C", "D"};
JList list = new JList(items);
list.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
JList list = (JList)evt.getSource();
if (evt.getClickCount() == 2) {
// Double-click detected
int index = list.locationToIndex(evt.getPoint());
} else if (evt.getClickCount() == 3) {
// Triple-click detected
int index = list.locationToIndex(evt.getPoint());
}
}
});
簡単な解決策があることは知っていますが、キーボードと同様にマウスを使用できるようにするより一般的な解決策については、 List Action を確認してください。適切なGUI設計により、どちらのアプローチも使用できます。
(Mohamed Saligh、受け入れられた応答に基づく)
NetBeansを使用している場合
JList> Eventsウィンドウ> mouseClickedを選択します
private void jListNicknamesMouseClicked(Java.awt.event.MouseEvent evt) {
JList list = (JList)evt.getSource();
if (evt.getClickCount() == 2) {
int index = list.locationToIndex(evt.getPoint());
System.out.println("index: "+index);
}
}