当尝试通过双击从列表中选择项目时,它为两个列表都选择了一次,但在通过单击选择之后!
listScrollPanel.setViewportView(categoryList);
subCategoryList.setModel(new javax.swing.AbstractListModel() {
String[] strings = {"Sub-category 1", "Sub-category 2", "Sub-category 3", "Sub-category 4", "Sub-category 5", "Sub-category 6"};
});
subCategoryList.addMouseListener(new java.awt.event.MouseAdapter() {
@Override
public void mouseClicked(java.awt.event.MouseEvent evt) {
infoBox(Integer.toString(evt.getClickCount()), subCategory);
if (evt.getClickCount() == 2) {
subCategoryList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
@Override
public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
subCategoryListValueChanged(evt);
}
});
}
}
});
private void subCategoryListValueChanged(javax.swing.event.ListSelectionEvent evt) {
subCategory = (String) subCategoryList.getSelectedValue();
labelSC.setText(CAT_HEADER);
listScrollPanel.setViewportView(categoryList);
}
private static void infoBox(String Message, String location) {
JOptionPane.showMessageDialog(null, Message, location, JOptionPane.INFORMATION_MESSAGE);
}如何让他只听双击?我有双击后的categoryList和ListSelection更改viewportView为subCategory,这是一样的工作!但他们在前2次双击后就反应了单击!
发布于 2013-03-25 22:18:20
每次发生双击事件时,都会添加一个新的ListSelectionListener。它们中的每一个都会对单击鼠标做出响应。您可以单独使用MouseListener:
subCategoryList.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent evt) {
if (evt.getClickCount() == 2) {
String selectedValue = subCategoryList.getSelectedValue();
// do stuff with selectedValue...
}
}
});https://stackoverflow.com/questions/15616934
复制相似问题