Here you can find the source of getTogglableIconButton(ImageIcon icon)
public static JToggleButton getTogglableIconButton(ImageIcon icon)
//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; } }