package aima.gui.swing.applications.robotics.components; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.event.ActionListener; import java.util.Properties; import javax.swing.JButton; import javax.swing.JPanel; import aima.gui.swing.applications.robotics.components.Settings.SpecialSetting; import aima.gui.swing.framework.util.GuiBase; /** * A button panel is a {@link SpecialSetting} containing a single button on which a {@link ActionListener} can be registered. * * @author Arno von Borries * @author Jan Phillip Kretzschmar * @author Andreas Walscheid * */ public class ButtonPanel extends SpecialSetting { private static final long serialVersionUID = 1L; private JButton button; /** * @param title the title displayed in the button. * @param actionListener the action listener which will be registered on the button. */ public ButtonPanel(String title, ActionListener actionListener) { setLayout(new BorderLayout()); button = new JButton(title); button.setBorder(GuiBase.getClearanceBorder()); button.addActionListener(actionListener); button.setAlignmentX(CENTER_ALIGNMENT); JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new FlowLayout()); buttonPanel.add(button); buttonPanel.add(GuiBase.getClearanceComp()); buttonPanel.add(button); add(buttonPanel, BorderLayout.CENTER); } /** * Enables the button. */ public void enableButton() { button.setEnabled(true); } /** * Disables the button. */ public void disableButton() { button.setEnabled(false); } @Override public void loadSettings(Properties values) { } @Override public void saveSettings(Properties values) { } @Override public void revertGui() { } @Override public void saveGui() { } @Override public void notifyChangeListener() { } }