/* * Created on Jan 19, 2006 * * Copyright (c) 2006 P.J.Leonard * * http://www.frinika.com * * This file is part of Frinika. * * Frinika is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * Frinika is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with Frinika; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ package com.frinika.gui.util; import java.awt.event.ActionListener; import javax.swing.ButtonGroup; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JToggleButton; /** * A toolkit class for creating graphical buttons. Images are png images retrieved from the icons folder * * @author P.J. Leonard * @author Peter Salomonsen */ public class ButtonFactory { /** * Make a toggle button * @param imageName - just the name, no folder or file extension information * @param actionCommand - action command string for the actionlistener * @param toolTipText * @param listener - action listener * @param group * @param panel * @return */ public static JToggleButton makeToggleButton(String imageName, String actionCommand, String toolTipText, ActionListener listener, ButtonGroup group, JPanel panel) { JToggleButton button; try { button = new JToggleButton(new ImageIcon(ClassLoader .getSystemResource("icons/" + imageName + ".png"))); } catch( Exception e) { System.err.println(" Problem creating icon icons/" + imageName + ".png" ); button=new JToggleButton(imageName); } button.setActionCommand(actionCommand); button.setToolTipText(toolTipText); if(listener!=null) button.addActionListener(listener); if (group != null) group.add(button); panel.add(button); return button; } /** * Make a press button * @param imageName - just the name, no folder or file extension information * @param actionCommand - action command string for the actionlistener * @param toolTipText * @param listener - action listener * @param panel * @return */ public static JButton makePressButton(String imageName, String actionCommand, String toolTipText, ActionListener listener, JComponent panel) { JButton button; button = new JButton(new ImageIcon(ClassLoader .getSystemResource("icons/" + imageName + ".png"))); button.setActionCommand(actionCommand); button.setToolTipText(toolTipText); if(listener!=null) button.addActionListener(listener); panel.add(button); return button; } public static JToggleButton makeToggleButton(String imageName, String actionCommand, String toolTipText, ActionListener listener, JComponent panel) { JToggleButton button; try { button = new JToggleButton(new ImageIcon(ClassLoader .getSystemResource("icons/" + imageName + ".png"))); } catch(Exception e) { e.printStackTrace(); button= new JToggleButton(imageName); } button.setActionCommand(actionCommand); button.setToolTipText(toolTipText); if(listener!=null) button.addActionListener(listener); panel.add(button); return button; } public static JLabel makeIconLabel(String imageName) { JLabel button; button = new JLabel(new ImageIcon(ClassLoader .getSystemResource("icons/" + imageName + ".png"))); return button; } }