package de.yogularm.minecraft.itemfinder.gui; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.List; import java.util.Observable; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; import de.yogularm.minecraft.itemfinder.region.Dimension; public class DimensionSelector extends Observable { private JComboBox<Dimension> component; private Dimension currentSelection; public DimensionSelector() { initUI(); } private void initUI() { component = new JComboBox<>(); component.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { checkChanged(); } }); } public void setDimensions(List<Dimension> dimensions) { component.setModel(new DefaultComboBoxModel<>(dimensions.toArray(new Dimension[0]))); checkChanged(); } private void checkChanged() { if (getSelection() != currentSelection) { currentSelection = getSelection(); setChanged(); notifyObservers(); } } public Component getComponent() { return component; } public Dimension getSelection() { Object item = component.getSelectedItem(); if (item == null) return null; return (Dimension)item; } }