views:

274

answers:

3

I am looking for a way to select multiple items within a JList by just clicking each item.

The normal way to do this is to hold the command/ctrl key and then click.

I think it would be more intuitive just to allow the user to click the items on and off without the need to hold an additional key.

A: 

I think you can easily accomplish this by attaching a mouse listener on your JList and selecting programatically the item in the listener code. Of course you will probably need some code to determine which item was pressed basing on some coordinates.

pajton
+1  A: 

Think twice before changing default behavior. Unless you have some special use-case, I'd not like my List to work different than everywhere else :)

Having said that, you should be able to use your own ListSelectionModel:

list.setSelectionModel(new DefaultListSelectionModel() {
    @Override
    public void setSelectionInterval(int index0, int index1) {
        if(super.isSelectedIndex(index0)) {
            super.removeSelectionInterval(index0, index1);
        }
        else {
            super.addSelectionInterval(index0, index1);
        }
    }
});
Peter Lang
Thanks that worked a treat. I am not convinced it's the right thing to do but I would like test it out with a few people.
Gordon
+1  A: 

For that you'd normally use a checkbox group of JCheckBox items.

Users are already used with the fact that they need to press CTRL to select multiple items in a listbox. You should not change the default experience/expectation.

BalusC