Java JButton Settings getTogglableIconButton(ImageIcon icon)

Here you can find the source of getTogglableIconButton(ImageIcon icon)

Description

get Togglable Icon Button

License

Apache License

Declaration

public static JToggleButton getTogglableIconButton(ImageIcon icon) 

Method Source Code

//package com.java2s;
/*//w  w  w . j a  v  a2  s.co  m
 *    Copyright 2011-2012 University of Toronto
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

import javax.swing.*;

import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class Main {
    public static JToggleButton getTogglableIconButton(ImageIcon icon) {

        final ImageIcon selectedIcon = icon;
        //final ImageIcon unselectedIcon = new AlphaImageIcon(icon, 0.3F);
        final ImageIcon unselectedIcon = new ImageIcon(GrayFilter.createDisabledImage(icon.getImage()));

        final JToggleButton button = new JToggleButton(icon);
        button.setFocusable(false);
        button.setContentAreaFilled(false);
        button.setBorder(null);
        //ViewUtil.makeSmall(button);

        final Runnable setSelected = new Runnable() {
            @Override
            public void run() {
                button.setIcon(selectedIcon);
                button.setFocusable(false);
                button.setContentAreaFilled(false);
                button.setBorder(null);
            }
        };

        final Runnable setUnselected = new Runnable() {
            @Override
            public void run() {
                button.setIcon(unselectedIcon);
                button.setFocusable(false);
                button.setContentAreaFilled(false);
                button.setBorder(null);
            }
        };

        button.addChangeListener(new ChangeListener() {
            @Override
            public void stateChanged(ChangeEvent ce) {
                if (button.getModel().isSelected()) {
                    setSelected.run();
                } else {
                    setUnselected.run();
                }
            }
        });

        setUnselected.run();

        return button;
    }
}

Related

  1. getSelectedButton(ButtonGroup group)
  2. getSelectedButtonText(ButtonGroup buttonGroup)
  3. getSelectedButtonText(ButtonGroup buttonGroup)
  4. getSoftToggleButton(String string)
  5. getTextXOffset(AbstractButton c)
  6. getWindowFileChooserOKButton(JFileChooser chooser)
  7. groupButtons(AbstractButton... buttons)
  8. groupButtons(final Container container, final boolean recursive)
  9. growFont(JComponent button)