public SingleValueSelector() {
        buttonValueMap = new LinkedHashMap<>();
        buttonGroup = new ButtonGroup();
        listenerList = new EventListenerList();
        itemListener = new ItemListener() {
            @Override
            @SuppressWarnings("unchecked")
            public void itemStateChanged(ItemEvent e) {
                for (SelectionChangeListener<B, T> l
                        : listenerList.getListeners(SelectionChangeListener.class)) {
                    l.selectionChanged(new SelectionChangeEvent<>(SingleValueSelector.this));
                }
            }
        };
    }