2010-12-09 7 views

Répondre

6

Utilisez un SelectionListener sur votre JTable.

JTable table = new JTable(); 
JButton button = new JButton(); 
button.setEnabled(false); 

ListSelectionModel listSelectionModel = table.getSelectionModel(); 
listSelectionModel.addListSelectionListener(new ListSelectionListener() { 
     public void valueChanged(ListSelectionEvent e) { 
      ListSelectionModel lsm = (ListSelectionModel)e.getSource(); 
      button.setEnabled(!lsm.isSelectionEmpty()); 
}); 
+1

mieux encore, supprimez le if/else et juste button.setEnabled (! Lsm.isSelectionEmpty()); –

+0

@Jason - bon point. Terminé. – justkt

3

Quelque chose comme cela devrait fonctionner:

table.getSelectionModel().addListSelectionListener(new ListSelectionListener() 
{ 
    @Override 
    public void valueChanged(ListSelectionEvent e) 
    { 
     if (!e.getValueIsAdjusting()) 
     { 
      boolean rowsAreSelected = table.getSelectedRowCount() > 0; 
      button.setEnabled(rowsAreSelected); 
     } 
    } 
}); 
+0

Aucun ListSelectionEvent n'est alors déclenché? Je serais très surpris si c'est le cas ... – Uhlen

+0

J'ai mal lu le code. Ma faute. – justkt

Questions connexes