void (JButton button, final Factory<? extends List<T>> factory) { button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { List<T> items = factory.create(); getList().requestFocusInWindow(); if (items == null || items.size() == 0) { return; } for (final T item : items) { getModel().addElement(item); ScrollingUtil.selectItem(getList(), item); } } }); addComponent(button); }