0

ダブルクリックでリストからアイテムを選択しようとすると、両方のリストが1回選択されますが、シングルクリックで選択した後です!!!

    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回のダブルクリックの後、シングルクリックで反応します。

4

1 に答える 1

5

ListSelectionListenerマウスのダブルクリックイベントが発生するたびに、新しいものを追加します。これらのそれぞれは、マウスのシングルクリックに応答します。MouseListenerを単独で使用できます。

subCategoryList.addMouseListener(new MouseAdapter() {
    @Override
    public void mouseClicked(MouseEvent evt) {
        if (evt.getClickCount() == 2) {
           String selectedValue = subCategoryList.getSelectedValue();
           // do stuff with selectedValue...
        }
    }
});
于 2013-03-25T14:18:19.540 に答える