Limiting Row Selection in JTable

Posted by Pat on Stack Overflow See other posts from Stack Overflow or by Pat
Published on 2012-06-22T21:06:33Z Indexed on 2012/06/22 21:16 UTC
Read the original article Hit count: 144

Filed under:
|
|

Is there an easy way to limit the total selection of rows in a JTable? I mean I'd like to allow the user to use shift and ctrl to select a maximum of X rows. If he clicks again on a row it would cancel out all the selections. Sort of how it currently behaves, but while limiting the total amount of selected rows.

Here's my current implementation, I'm kind of clueless on how to limit the selection graphically.

public class RoomsListView extends AbstractViewPanel {

public RoomsListView(DefaultController controller)
{
    this.controller = controller;
    initUI();
}

private void initUI() 
{
    tableT = new JTable(RoomsModel.getInstance());
    sorter = new TableRowSorter<RoomsModel>(RoomsModel.getInstance());
    tableT.setRowSorter(sorter);

    tableT.setPreferredScrollableViewportSize(new Dimension(CUSTOM_TABLE_WIDTH, CUSTOM_TABLE_HEIGHT));

    tableT.addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent e) {
            rowClickedPerformed(e);
        }
    });
}

private void rowClickedPerformed(MouseEvent e) 
{

}

public void modelPropertyChange(PropertyChangeEvent evt) 
{
}

public JTable getTable()
{
    return tableT;
}

private final int CUSTOM_TABLE_WIDTH = -1;
private final int CUSTOM_TABLE_HEIGHT = 150;

private JTable tableT;
private DefaultController controller;
private TableRowSorter<RoomsModel> sorter;

}

© Stack Overflow or respective owner

Related posts about java

Related posts about swing