public void valueChanged(ListSelectionEvent e) { if(!e.getValueIsAdjusting()) { int i = -1; if(next!=null) { for(i=0;i<amodel.getSize(); i++) { if(next.equals(amodel.getElementAt(i))) break; } } // Hack!!! Should use agent.invokeLater if(activations.getSelectedIndex()!=-1 && activations.getSelectedIndex()!=i && activations.getSelectedIndex()<agenda.getActivations().size()) agenda.setNextActivation((Activation)amodel.getElementAt(activations.getSelectedIndex())); } } });